mirror of
https://github.com/oven-sh/bun
synced 2026-02-10 02:48:50 +00:00
46 lines
1020 B
JavaScript
46 lines
1020 B
JavaScript
// https://github.com/oven-sh/bun/issues/1366
|
|
import { Database } from "bun:sqlite";
|
|
import { rmSync } from "fs";
|
|
|
|
const dir = process.env.SQLITE_DIR;
|
|
|
|
rmSync(dir + "get-persist.sqlite", { force: true });
|
|
|
|
var db = Database.open(dir + "get-persist.sqlite", { create: true });
|
|
|
|
// Note, I've played with various values and it doesn't seem to change
|
|
// the behavior. The "beter-sqlite3" npm package does not exhibit this
|
|
// bug, so it doesn't seem to be a general SQLite thing.
|
|
db.run(`PRAGMA journal_mode = WAL`);
|
|
db.run(`PRAGMA synchrounous = NORMAL`);
|
|
|
|
db.run(
|
|
`CREATE TABLE IF NOT EXISTS examples (
|
|
id TEXT PRIMARY KEY
|
|
)`,
|
|
);
|
|
|
|
// This persists, but if you place this call
|
|
db.run(
|
|
`
|
|
INSERT INTO examples
|
|
VALUES ('hello')
|
|
ON CONFLICT (id) DO
|
|
UPDATE SET id='hello'
|
|
RETURNING id
|
|
`,
|
|
);
|
|
|
|
db.query(`SELECT id FROM examples WHERE id='hello'`).get().id;
|
|
db.query(
|
|
`
|
|
INSERT INTO examples
|
|
VALUES ('world')
|
|
ON CONFLICT (id) DO
|
|
UPDATE SET id='world'
|
|
RETURNING id
|
|
`,
|
|
).get();
|
|
|
|
process.exit(0);
|