source: code/trunk/db_sqlite_test.go@ 769

Last change on this file since 769 was 619, checked in by contact, 4 years ago

db_sqlite: add migration test

File size: 1.2 KB
RevLine 
[619]1package soju
2
3import (
4 "database/sql"
5 "testing"
6)
7
8// SQLite version 0 schema. DO NOT EDIT.
9const sqliteV0Schema = `
10CREATE TABLE User (
11 username VARCHAR(255) NOT NULL UNIQUE,
12 password VARCHAR(255)
13);
14
15CREATE TABLE Network (
16 id INTEGER PRIMARY KEY,
17 name VARCHAR(255),
18 user VARCHAR(255) NOT NULL,
19 addr VARCHAR(255) NOT NULL,
20 nick VARCHAR(255) NOT NULL,
21 username VARCHAR(255),
22 realname VARCHAR(255),
23 pass VARCHAR(255),
24 sasl_mechanism VARCHAR(255),
25 sasl_plain_username VARCHAR(255),
26 sasl_plain_password VARCHAR(255),
27 UNIQUE(user, addr, nick),
28 UNIQUE(user, name)
29);
30
31CREATE TABLE Channel (
32 id INTEGER PRIMARY KEY,
33 network INTEGER NOT NULL,
34 name VARCHAR(255) NOT NULL,
35 key VARCHAR(255),
36 FOREIGN KEY(network) REFERENCES Network(id),
37 UNIQUE(network, name)
38);
39
40PRAGMA user_version = 1;
41`
42
43func TestSqliteMigrations(t *testing.T) {
44 sqlDB, err := sql.Open("sqlite3", ":memory:")
45 if err != nil {
46 t.Fatalf("failed to create temporary SQLite database: %v", err)
47 }
48
49 if _, err := sqlDB.Exec(sqliteV0Schema); err != nil {
50 t.Fatalf("DB.Exec() failed for v0 schema: %v", err)
51 }
52
53 db := &SqliteDB{db: sqlDB}
54 defer db.Close()
55
56 if err := db.upgrade(); err != nil {
57 t.Fatalf("SqliteDB.Upgrade() failed: %v", err)
58 }
59}
Note: See TracBrowser for help on using the repository browser.