浏览代码

foreign_keys must be enabled OUTSIDE of a transaction

default_compile_flags
vector-of-bool 4 年前
父节点
当前提交
5f57cca29e
共有 2 个文件被更改,包括 4 次插入2 次删除
  1. +2
    -1
      src/dds/catalog/catalog.cpp
  2. +2
    -1
      src/dds/db/database.cpp

+ 2
- 1
src/dds/catalog/catalog.cpp 查看文件

} }


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

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



+ 2
- 1
src/dds/db/database.cpp 查看文件

} }


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

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



正在加载...
取消
保存