我正在开发一个项目,从一开始就使用bookshelfjs(使用knexjs迁移系统)(1年半)。 我们现在只有少于80次迁移,并且开始花费大量时间(超过2分钟)来运行所有迁移。我们正在使用持续集成进行部署,因此迁移必须在测试过程和部署过程中运行。
我想知道如何优化它。这可能是从干净的状态开始的吗?我不关心失去回滚的可能性。该项目现在更加成熟,我们不需要再对数据结构部分进行迭代了。
有最佳做法吗?我来自Doctrine(PHP)世界,它确实与众不同。
感谢您的建议!
答案 0 :(得分:0)
这样,迁移系统仅将新添加的迁移应用于现有初始转储的顶部。
答案 1 :(得分:0)
在使用knex.schema.createTable
从另一个表中创建带有Foregin键的表时,以后再运行knex migrate:latest
时,应该先处理带有外键的表,然后再使用外键。例如,表1具有来自talbe2的外键key1
,要确保首先处理表2,可以在表名之前添加数字。然后,在您的迁移文件夹中,将有1table2.js
,2table1.js
。这看起来很笨拙,但效果不错!