【问题标题】:Clojure Luminus Migrations - Only one table per migration fileClojure Luminus 迁移 - 每个迁移文件只有一个表
【发布时间】:2020-01-22 21:16:10
【问题描述】:

我正在使用 Clojure 和 Luminus 创建一个 Web 应用程序,但是当我创建一个包含我需要的所有表的迁移文件时,它只会创建第一个。这是我的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 时,只会创建表UserTable。这应该像这样工作吗?我需要为每个表创建一个迁移文件吗?

【问题讨论】:

    标签: clojure luminus


    【解决方案1】:

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

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

    【讨论】:

    • 非常感谢。另外,是否建议为每个表创建一个迁移?
    • 我不明白为什么每次迁移只有一个表。
    【解决方案2】:

    只是让 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
    );
    

    【讨论】:

      猜你喜欢
      • 2012-04-12
      • 2016-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-19
      • 2015-02-03
      • 2020-10-16
      • 2021-06-08
      相关资源
      最近更新 更多