【发布时间】:2019-04-12 21:04:38
【问题描述】:
我有一个 sql 文件,我在其中编写用于在发行版中运行的语句,该文件包含如下语句:
-- =======================2019-02-01=======================
UPDATE rating set stars = 3 where id = 6;
UPDATE users SET status = 'A' where last_login >= '2019-01-01';
INSERT INTO....
-- =======================2019-02-15=======================
UPDATE rating set stars = 3 where id = 6;
UPDATE users SET status = 'A' where last_login >= '2019-01-01';
INSERT INTO....
我在每个发布日期都使用具体的句子,但我认为这是不好的做法,它没有可扩展的方法。
我正在尝试将此方法更改为 Knex 种子或迁移。最好的做法是什么?
种子有问题,因为 knex 每次我写命令knex seed:run 时都会执行种子,并显示一些错误。
【问题讨论】:
-
仅当您想将同一数据集多次插入数据库时才应使用种子。迁移适用于在创建模式等过程中添加一次初始数据时。
-
我已经使用 knex 迁移,类似于我在下面描述的生产方式,你不应该将迁移作为部署的应用程序代码的一部分运行,但如果你需要最小化管理,你可以这样做。始终在本地进行测试。
标签: database-migration knex.js