在我的Rails 4应用程序中,我想将我的迁移文件折叠成一个大文件(类似于schema.rb),因为是时候做一些内务管理但是我不确定如何访问存储迁移数据的数据库中的表所以当我运行迁移时,我没有收到任何错误/冲突。
问题如何访问和删除存储迁移数据的表中的数据?
为了好玩,您还可以通过为它们创建模型类来在控制台中操作这些...
class SchemaMigration < ActiveRecord::Base; self.primary_key = :version; end
然后你可以做SchemaMigration.all,SchemaMigration.last.delete等。
真的只是使用SQL的替代品,而且很少需要在这个低级别上搞乱...通常是一个坏主意但很酷看看如何做到:)
另一种解决方案是通过以下方式访问它:
ActiveRecord::SchemaMigration
大卫给出的答案在我的背景下不起作用。
schema_migrations
表包含修订号;最后一条记录是最近执行的迁移。您可以手动操作这些记录。
不知道你为什么要这样做但是你去了:
的ActiveRecord :: Migrator.get_all_versions
获取最新版本:
ActiveRecord::SchemaMigration.last.version
或所有版本:
ActiveRecord::SchemaMigration.all.map(&:version)