Use schema only data base in resources directory for type provider (at compile time).

This commit is contained in:
Achim D. Brucker 2017-08-12 19:22:32 +01:00
parent 1a367f9916
commit d546436bb7
1 changed files with 7 additions and 8 deletions

View File

@ -24,13 +24,11 @@ module SqlConnector =
let [<Literal>] DevelopmentDB = "aa-ac.sqlite"
let [<Literal>] FullDB = "full.sqlite"
let [<Literal>] DatabaseDir = "archive/db"
let [<Literal>] ArchiveDir = __SOURCE_DIRECTORY__
+ @"/../.."
// static (compile time) ConnectionString
let [<Literal>] ConnectionString = @"Data Source="
+ ArchiveDir
+ @"/" + DatabaseDir
+ @"/" + DevelopmentDB + @";Version=3"
+ __SOURCE_DIRECTORY__
+ @"/../resources/extensions-schema.sqlite"
+ @";Version=3"
// create a type alias with the connection string and database vendor settings
type Sql = SqlDataProvider<
ConnectionString = ConnectionString,
@ -42,11 +40,12 @@ module SqlConnector =
type Db = Dev | Prod | Auto
let rec getCtx dir = let archiveDir = function
| None -> ArchiveDir
| None -> __SOURCE_DIRECTORY__ + @"/../.."
| Some s -> s
ignore (printf "Data Source=%s/%s/DB;Version=3" (archiveDir dir) DatabaseDir)
function
| Dev -> Sql.GetDataContext(sprintf "Data Source=%s/%s/%s;Version=3" (archiveDir dir ) DatabaseDir DevelopmentDB)
| Prod -> Sql.GetDataContext(sprintf "Data Source=%s/%s/%s;Version=3" (archiveDir dir ) DatabaseDir FullDB)
| Dev -> Sql.GetDataContext(sprintf "Data Source=%s/%s/%s;Version=3" (archiveDir dir) DatabaseDir DevelopmentDB)
| Prod -> Sql.GetDataContext(sprintf "Data Source=%s/%s/%s;Version=3" (archiveDir dir) DatabaseDir FullDB)
| Auto -> try
getCtx dir Prod
with