feat: migrate system + cross-DB engine + IMPORT/EXPORT syntax -- 22 files, client+server+docs
CI / test (push) Has been cancelled
CI / verify (push) Has been cancelled
Clients CI / build-server (push) Has been cancelled
Clients CI / test-python (push) Has been cancelled
Clients CI / test-javascript (push) Has been cancelled
Clients CI / test-nim (push) Has been cancelled
Clients CI / test-rust (push) Has been cancelled
CI / test (push) Has been cancelled
CI / verify (push) Has been cancelled
Clients CI / build-server (push) Has been cancelled
Clients CI / test-python (push) Has been cancelled
Clients CI / test-javascript (push) Has been cancelled
Clients CI / test-nim (push) Has been cancelled
Clients CI / test-rust (push) Has been cancelled
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
discard """
|
||||
cmd: "nim c -r $file"
|
||||
"""
|
||||
|
||||
import std/unittest
|
||||
import std/asyncdispatch
|
||||
import std/json
|
||||
import ../../src/allographer/query_builder
|
||||
import ../../src/allographer/query_builder/models/baradb/baradb_exec
|
||||
import ./connections
|
||||
|
||||
|
||||
let rdb = baradb
|
||||
|
||||
suite("Baradb migrations"):
|
||||
test("create migration"):
|
||||
let upSql = """
|
||||
CREATE TABLE IF NOT EXISTS test_mig_users (
|
||||
id SERIAL PRIMARY KEY,
|
||||
name VARCHAR(255)
|
||||
)
|
||||
"""
|
||||
let downSql = "DROP TABLE IF EXISTS test_mig_users"
|
||||
let qr = waitFor rdb.createMigration("test_mig_001", upSql, downSql)
|
||||
check qr.rowCount >= 0
|
||||
|
||||
test("migration status shows pending"):
|
||||
let status = waitFor rdb.migrationStatus()
|
||||
var found = false
|
||||
for row in status:
|
||||
if row["name"].getStr() == "test_mig_001":
|
||||
check row["status"].getStr() == "pending"
|
||||
found = true
|
||||
break
|
||||
check found
|
||||
|
||||
test("apply migration"):
|
||||
let qr = waitFor rdb.applyMigration("test_mig_001")
|
||||
check qr.rowCount >= 0
|
||||
|
||||
test("is migration applied"):
|
||||
let applied = waitFor rdb.isMigrationApplied("test_mig_001")
|
||||
check applied
|
||||
|
||||
test("migration up (all pending)"):
|
||||
let qr = waitFor rdb.migrateUp()
|
||||
check qr.rowCount >= 0
|
||||
|
||||
test("migration dry run"):
|
||||
let qr = waitFor rdb.migrationDryRun("test_mig_001")
|
||||
check qr.rowCount >= 0
|
||||
|
||||
test("table exists after migration"):
|
||||
let users = waitFor rdb.table("test_mig_users").get()
|
||||
check users.len >= 0
|
||||
|
||||
test("migrate down (rollback)"):
|
||||
let qr = waitFor rdb.migrateDown(1)
|
||||
check qr.rowCount >= 0
|
||||
Reference in New Issue
Block a user