Browse Source

foreign_keys must be enabled OUTSIDE of a transaction

default_compile_flags
vector-of-bool 4 years ago
parent
commit
5f57cca29e
2 changed files with 4 additions and 2 deletions
  1. +2
    -1
      src/dds/catalog/catalog.cpp
  2. +2
    -1
      src/dds/db/database.cpp

+ 2
- 1
src/dds/catalog/catalog.cpp View File

@@ -247,13 +247,14 @@ void store_init_packages(nsql::database& db, nsql::statement_cache& st_cache) {
}

void ensure_migrated(nsql::database& db) {
nsql::transaction_guard tr{db};
db.exec(R"(
PRAGMA foreign_keys = 1;
CREATE TABLE IF NOT EXISTS dds_cat_meta AS
WITH init(meta) AS (VALUES ('{"version": 0}'))
SELECT * FROM init;
)");
nsql::transaction_guard tr{db};

auto meta_st = db.prepare("SELECT meta FROM dds_cat_meta");
auto [meta_json] = nsql::unpack_single<std::string>(meta_st);


+ 2
- 1
src/dds/db/database.cpp View File

@@ -52,13 +52,14 @@ void migrate_1(nsql::database& db) {
}

void ensure_migrated(nsql::database& db) {
nsql::transaction_guard tr{db};
db.exec(R"(
PRAGMA foreign_keys = 1;
CREATE TABLE IF NOT EXISTS dds_meta AS
WITH init (meta) AS (VALUES ('{"version": 0}'))
SELECT * FROM init;
)");
nsql::transaction_guard tr{db};

auto meta_st = db.prepare("SELECT meta FROM dds_meta");
auto [meta_json] = nsql::unpack_single<std::string>(meta_st);


Loading…
Cancel
Save