问题标签 [rails-migrations]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
4118 浏览

ruby-on-rails - Rails 3 在迁移问题中添加外键

有谁知道使用迁移在 Rails 3 中创建外键的方法?

0 投票
2 回答
1732 浏览

mysql - 如何从 Rails 迁移(对于 MySQL)中获取更改的 sql 脚本?

我看过http://github.com/muness/migration_sql_generator,但它不能与 MySQL 一起正常工作以进行某些重要操作。有没有其他方法可以捕获在 Rails 迁移期间生成的 sql?

我问的原因是我无法在生产服务器上运行迁移,因为它是由我公司的技术支持人员维护的(并且从未被开发人员接触过)。开发人员向技术支持人员提供了一个 JRuby on Rails 战争文件,并通过 Tomcat 进行部署。但是说服技术支持来安装 JRuby 和 Rails 只是为了在生产环境中运行迁移绝对不是一件容易的事。我们希望保持部署非常简单,并且尽可能少的依赖。

我们只想为他们提供一个war文件和一个带有db更改的sql脚本。

0 投票
2 回答
5664 浏览

ruby-on-rails - 如何修复损坏的 Rails 数据库迁移

由于我自己的愚蠢,我设法以某种方式使我的数据库处于损坏状态,并且无法弄清楚如何修复它。

问题始于我的一个数据库迁移中的错字。我正在添加一列并且拼错了我想要添加该列的表的名称。我运行了“rake db:migrate”,但它失败了。所以我去修正了错字并再次运行“rake db:migrate”,但什么也没发生。所以我想也许 rails 认为它​​已经完成了迁移,我运行了“rake db:rollback”,这似乎最终使事情变得复杂,因为它删除了我试图添加列的表。

所有这一切的最终结果是我的数据库版本现在与 rails 认为的不同步。我试过使用 'rake db:migrate:up' 和 'rake db:migrate:down' (带有版本号),但这没有帮助。即使我尝试显式运行创建问题表的迁移,也没有任何反应(如果我运行“向下”版本,它会告诉我它不能删除该表)。我知道我可以直接访问数据库并修补问题表,但我认为找出是否有针对此问题的“适当”解决方案会很好。

非常感谢

0 投票
1 回答
163 浏览

ruby-on-rails - 如何在活动记录模型上执行“移动字段”重构

这是一个相当常见的重构,Martin Fowler 称之为“移动域”。给定 3 个模型:

如何重构(包括迁移)从 Person 到 ContactDetails 的 has_one 地址?之后模型将如下所示:

0 投票
2 回答
718 浏览

ruby-on-rails - 无法更新我的 Rails 数据库迁移中的记录

例如我有以下迁移

当我运行这个(使用rake db:migrate)时,我收到以下消息

如果我立即再次运行迁移,update_all调用似乎可以工作。

我正在使用 Rails 2.3.5 和 sqlite3。

是什么赋予了?

0 投票
4 回答
42344 浏览

ruby-on-rails - ActiveRecord 数据类型的文档页面在哪里?

我找不到包含所有数据类型列表的活动记录文档页面。

有人可以帮我吗?

0 投票
1 回答
3631 浏览

mysql - 使用带有rails迁移的mysql创建多列不同索引

尝试在 rails 迁移中执行此语句以生成多列唯一约束/索引:

我也尝试为该方法提供一个可选的 :name ,但仍然失败。此表中没有现有键

如果不使用执行和直接 sql,我该如何创建?谢谢。

0 投票
2 回答
3064 浏览

ruby-on-rails - 如何在 Rails 中回滚单个迁移文件?

我只想撤消一个迁移文件,例如

耙分贝:回滚版本=$TIMESTAMP

该命令不起作用。有什么建议吗?

0 投票
1 回答
668 浏览

ruby-on-rails - 在多个数据库上运行迁移/架构转储错误

对于访问错误数据库的表的简单迁移的 db:schema:dump 部分失败,任何人都有解决方法(没有猴子修补导轨)?我得到错误

* Mysql::Error: View 'database1.boxscores' 引用无效的表或列或函数或视图的定义者/调用者缺乏使用它们的权限:SHOW FIELDS FROM boxscores *

当 boxscores 在 database2 上时。ActiveRecord 模型设置为建立连接并且应用程序工作正常,只是迁移失败,并且只有模式转储的 b/c。

0 投票
5 回答
5323 浏览

ruby-on-rails - Rails:如何使用 Rails 在子目录中创建迁移?

我正在编写一个 SaaS 模型应用程序。我的应用程序数据库由两个逻辑部分组成:

  • 应用程序表 - 例如用户、角色...
  • 用户定义的表(他可以从 UI 级别生成它们)对于每个应用程序实例可能不同

所有表都是由 rails 迁移机制创建的。

我想将用户定义的表放在另一个目录中:

  • db/migrations - 应用程序表
  • db/migrations/custom - 用户生成的表

所以我可以在 db/migrations/custom 上执行 svn:ignore,当我在客户端服务器上更新我的应用程序时,它只会更新应用程序表迁移。

有没有办法在rails中实现这一点?