我们正在构建管道中执行新的数据库创建和迁移,而Rails跳过了所有来自gem的迁移。我们可以通过在之后检查迁移状态来查看。
答案 0 :(得分:0)
运行
docker-compose run -e "RAILS_ENV=test" web rake db:create db:schema:load
代替
docker-compose run -e "RAILS_ENV=test" web rake db:create db:migrate
答案 1 :(得分:0)
检查您的db/migrate
目录是否包含这些迁移:通常需要手动将迁移从一个引擎复制到主机应用程序中。 documentation推荐
bin / rails railties:install:migrations
为避免此步骤,但只有在您对引擎代码有影响的情况下才有可能,我喜欢按照以下方式进行操作:
# Skips copying of migration and lets them run automagically from the host app
initializer :append_migrations do |app|
next if app.root.to_s.start_with?(root.to_s) # only run when called from other apps
app.config.paths['db/migrate'].concat(config.paths['db/migrate'].expanded)
end