Clojure Luminus 迁移 - 每个迁移文件只有一个 table

Clojure Luminus Migrations - Only one table per migration file

我正在使用 Clojure 和 Luminus 创建一个 Web 应用程序,但是当我创建一个包含我需要的所有 table 的迁移文件时,它只会创建第一个。这是我的 user-table.up.sql 文件:

CREATE TABLE UserTable (
   id INTEGER PRIMARY KEY AUTOINCREMENT,
   first_name VARCHAR(50),
   last_name VARCHAR(50),
   gender VARCHAR(50),
   email VARCHAR(50) UNIQUE,
   password VARCHAR(400),
   time_stamp TIMESTAMP,
   is_active BOOLEAN
);

CREATE TABLE LoginTable (
   id INTEGER PRIMARY KEY AUTOINCREMENT,
   user_id INTEGER,
   time_stamp TIMESTAMP
);

当我 运行 lein run migrate 时,只创建 table UserTable。这应该像这样工作吗?我是否需要为每个 table 创建一个迁移文件?

当您使用 Luminus 时,您可能正在使用 Migratus。如果要在一个 sql 文件中执行多个语句,请阅读:

https://github.com/yogthos/migratus#multiple-statements

只是让 Michiel 根据您的情况在这里回答,运行 迁移中的多个语句,在您的情况下用 --;; 分隔:

CREATE TABLE UserTable (
   id INTEGER PRIMARY KEY AUTOINCREMENT,
   first_name VARCHAR(50),
   last_name VARCHAR(50),
   gender VARCHAR(50),
   email VARCHAR(50) UNIQUE,
   password VARCHAR(400),
   time_stamp TIMESTAMP,
   is_active BOOLEAN
);
--;;
CREATE TABLE LoginTable (
   id INTEGER PRIMARY KEY AUTOINCREMENT,
   user_id INTEGER,
   time_stamp TIMESTAMP
);