New method for obtaining db context (getCtx) that supports development and productive database.

This commit is contained in:
Achim D. Brucker 2017-08-11 13:52:03 +01:00
parent f8415b890c
commit e7103c3e5b
2 changed files with 18 additions and 6 deletions

View File

@ -24,10 +24,11 @@ module SqlConnector =
let [<Literal>] DevelopmentDB = "aa-ac.sqlite"
let [<Literal>] FullDB = "full.sqlite"
let [<Literal>] DatabaseDir = "archive/db"
let [<Literal>] ArchiveDir = @"Data Source="
+ __SOURCE_DIRECTORY__
+ @"/../.."
// static (compile time) ConnectionString
let [<Literal>] ConnectionString = @"Data Source="
+ __SOURCE_DIRECTORY__
+ @"/../.."
let [<Literal>] ConnectionString = ArchiveDir
+ @"/" + DatabaseDir
+ @"/" + DevelopmentDB + @";Version=3"
// create a type alias with the connection string and database vendor settings
@ -37,3 +38,16 @@ module SqlConnector =
// ResolutionPath = ResolutionPath,
IndividualsAmount = 500,
UseOptionTypes = true >
type Db = Dev | Prod | Auto
let rec getCtx dir = let archiveDir = function
| None -> ArchiveDir
| Some s -> s
function
| Dev -> Sql.GetDataContext(sprintf "Data Source=%s/%s;Version=3" (archiveDir dir ) DevelopmentDB)
| Prod -> Sql.GetDataContext(sprintf "Data Source=%s/%s;Version=3" (archiveDir dir ) DevelopmentDB)
| Auto -> try
getCtx dir Prod
with
| _ -> getCtx dir Dev

View File

@ -30,9 +30,7 @@ open LogicalHacking.ExtensionDsLab.Archive.SqlConnector
#load "../../packages/FsLab/Themes/DefaultWhite.fsx"
#load "../../packages/FsLab/FsLab.fsx"
let Ctx = Sql.GetDataContext() // ResolutionPath,ConnectionString) // dynamic ResolutionPath and ConnectionString
let Ctx = getCtx None Auto
let getDownloads extid = query {
for order in Ctx.Main.Extension do