mirror of
https://github.com/juanfont/headscale.git
synced 2025-11-20 01:40:21 -05:00
Previously we tested migrations on schemas and dumps of old databases. The problems with testing migrations against the schemas is that the migration table is empty, so we try to run migrations that are already ran on that schema, which might blow up. This commit removes the schema approach and just leaves all the dumps, which include the migration table. Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
35 lines
2.9 KiB
SQL
35 lines
2.9 KiB
SQL
PRAGMA foreign_keys=OFF;
|
|
BEGIN TRANSACTION;
|
|
CREATE TABLE `migrations` (`id` text,PRIMARY KEY (`id`));
|
|
INSERT INTO migrations VALUES('202312101416');
|
|
INSERT INTO migrations VALUES('202312101430');
|
|
INSERT INTO migrations VALUES('202402151347');
|
|
INSERT INTO migrations VALUES('2024041121742');
|
|
INSERT INTO migrations VALUES('202406021630');
|
|
INSERT INTO migrations VALUES('202409271400');
|
|
INSERT INTO migrations VALUES('202407191627');
|
|
INSERT INTO migrations VALUES('202408181235');
|
|
INSERT INTO migrations VALUES('202501221827');
|
|
INSERT INTO migrations VALUES('202501311657');
|
|
INSERT INTO migrations VALUES('202502070949');
|
|
INSERT INTO migrations VALUES('202502131714');
|
|
INSERT INTO migrations VALUES('202502171819');
|
|
INSERT INTO migrations VALUES('202505091439');
|
|
INSERT INTO migrations VALUES('202505141324');
|
|
CREATE TABLE `users` (`id` integer PRIMARY KEY AUTOINCREMENT,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text,`display_name` text,`email` text,`provider_identifier` text,`provider` text,`profile_pic_url` text);
|
|
CREATE TABLE `pre_auth_keys` (`id` integer PRIMARY KEY AUTOINCREMENT,`key` text,`user_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`tags` text,`created_at` datetime,`expiration` datetime,CONSTRAINT `fk_pre_auth_keys_user` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE SET NULL);
|
|
CREATE TABLE `api_keys` (`id` integer PRIMARY KEY AUTOINCREMENT,`prefix` text,`hash` blob,`created_at` datetime,`expiration` datetime,`last_seen` datetime);
|
|
CREATE TABLE IF NOT EXISTS "nodes" (`id` integer PRIMARY KEY AUTOINCREMENT,`machine_key` text,`node_key` text,`disco_key` text,`endpoints` text,`host_info` text,`ipv4` text,`ipv6` text,`hostname` text,`given_name` varchar(63),`user_id` integer,`register_method` text,`forced_tags` text,`auth_key_id` integer,`expiry` datetime,`last_seen` datetime,`approved_routes` text,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,CONSTRAINT `fk_nodes_user` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE,CONSTRAINT `fk_nodes_auth_key` FOREIGN KEY (`auth_key_id`) REFERENCES `pre_auth_keys`(`id`));
|
|
CREATE TABLE `policies` (`id` integer PRIMARY KEY AUTOINCREMENT,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`data` text);
|
|
DELETE FROM sqlite_sequence;
|
|
INSERT INTO sqlite_sequence VALUES('nodes',0);
|
|
CREATE INDEX `idx_users_deleted_at` ON `users`(`deleted_at`);
|
|
CREATE UNIQUE INDEX `idx_api_keys_prefix` ON `api_keys`(`prefix`);
|
|
CREATE INDEX `idx_policies_deleted_at` ON `policies`(`deleted_at`);
|
|
CREATE UNIQUE INDEX idx_provider_identifier ON users (provider_identifier) WHERE provider_identifier IS NOT NULL;
|
|
CREATE UNIQUE INDEX idx_name_provider_identifier ON users (name,provider_identifier);
|
|
CREATE UNIQUE INDEX idx_name_no_provider_identifier ON users (name) WHERE provider_identifier IS NULL;
|
|
CREATE TABLE _litestream_seq (id INTEGER PRIMARY KEY, seq INTEGER);
|
|
CREATE TABLE _litestream_lock (id INTEGER);
|
|
COMMIT;
|