我们有一个可以从Rails应用程序中完全访问的遗留PostgreSQL数据库,除了当供应商提供更新时,他们对数据库执行的一致性检查失败,因为Rails在那里构建了一个“新”表,模式迁移表。可以在其他地方指导创建此表吗?或者是否可以使用Rails 4中的架构缓存来实现这一点?关于一般事物的release notes部分3.3说“模式缓存转储(提交) - 为了改进Rails启动时间,而不是直接从数据库加载模式,从转储文件加载模式。”
答案 0 :(得分:1)
我上次尝试here时发现了一篇关于这个问题的老博文。复制相关部分:
要转储架构,请执行以下rake任务:
RAILS_ENV=production bundle exec rake db:schema:cache:dump
这将生成一个文件db/schema_cache.dump
,Rails将用它来加载SchemaCache实例的内部状态。
要禁用架构缓存转储,请将以下内容添加到config/production.rb
文件中:
config.active_record.use_schema_cache_dump = false
如果要清除架构缓存,请执行:
RAILS_ENV=production bundle exec rake db:schema:cache:clear