问题标签 [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 投票
4 回答
29085 浏览

ruby-on-rails - 当我运行 rake:db migrate 命令时,出现错误“未初始化的常量 CreateArticles”

我创建了一个模型 ruby​​ 脚本/生成模型文章(简单的 enuff)

这是迁移文件 create_articles.rb:

当我运行 rake:db migrate 命令时,我收到一个错误 rake aborted!“未初始化的常量 CreateArticles。”

有谁知道为什么这个错误不断发生?

0 投票
6 回答
21024 浏览

ruby-on-rails - 在 Rails 中将自动增量添加回主键列

我错误地从表的 id 字段中删除了自动增量选项。谁能告诉我如何通过迁移重新插入自动增量选项?

0 投票
7 回答
15140 浏览

ruby-on-rails - Rails:进行不可逆转的迁移是不是很糟糕?

何时可以在迁移的 self.down 方法中引发 ActiveRecord::IrreversibleMigration 异常?您应该在什么时候努力实际实施迁移的逆向?

0 投票
9 回答
39185 浏览

mysql - 回滚失败的 Rails 迁移

如何回滚失败的 Rails 迁移?我希望这rake db:rollback会撤消失败的迁移,但是不,它会回滚先前的迁移(失败的迁移减去一)。而且rake db:migrate:down VERSION=myfailedmigration也不行。我遇到过几次,这非常令人沮丧。这是我为复制问题所做的一个简单测试:

结果:

好的,让我们回滚:

嗯?那是我在 SimpleTest 之前的最后一次迁移,而不是失败的迁移。(哦,如果迁移输出包含版本号,那就太好了。)

因此,让我们尝试为失败的迁移 SimpleTest 运行 down:

什么也没有发生,也没有输出。但也许它还是运行了迁移?因此,让我们修复 SimpleTest 迁移中的语法错误,并尝试再次运行它。

没有。显然 migrate:down 没有用。它没有失败,它只是没有执行。

除了手动进入数据库并删除它,然后运行测试之外,没有办法摆脱那个重复的表。一定有比这更好的方法。

0 投票
4 回答
44794 浏览

ruby-on-rails - Rails 迁移:撤消列的默认设置

我有一个问题,我在 Rails 中有一个为列设置默认设置的迁移,如下例所示:

假设,我想在以后的迁移中删除默认设置,如何使用 rails 迁移来做到这一点?

我目前的解决方法是在 rails 迁移中执行自定义 sql 命令,如下所示:

但我不喜欢这种方法,因为我现在依赖于底层数据库如何解释这个命令。如果数据库发生更改,此查询可能不再起作用,并且迁移将被破坏。那么,有没有办法表示撤消 Rails 中列的默认设置?

0 投票
10 回答
74780 浏览

ruby-on-rails - 在 Rails 中显示挂起的迁移

是否有显示 Rails 应用程序中待处理迁移的 rake 任务?

0 投票
5 回答
1513 浏览

ruby-on-rails - 在同一台机器上管理不同分支的 Rails 迁移

在我工作的公司里,我是一个单人乐队。我开发了一个 Rails 应用程序供公司内部使用。自项目开始以来,我一直使用 SVN 进行源代码控制,并在主干中完成了大部分但不是全部的开发。有时,当我要进行非常重大的更改时,我会分支并在完成后将更改合并回来。都很典型。

然而,我必须做出的那些“重大改变”都没有触及数据库迁移。它们一直是视图/控制器的东西。

在这种情况下,使用一个开发框,我如何处理迁移和我可能保留或可能不保留的各种数据库更改?如果分支不起作用,我不想记住将所有迁移恢复到分支的开头,然后再将其丢弃。

我考虑过设置特殊的开发环境和数据库(app_branch而不是app_development),但这似乎与实验开发倾向于依赖的“简单分支”的概念背道而驰。

这种情况有最佳实践吗?在这种情况下,其他人在做什么?

0 投票
5 回答
16931 浏览

ruby-on-rails - 如何在 Rails 迁移中检查数据库类型?

我有以下迁移,我希望能够检查与环境相关的当前数据库是否是 mysql 数据库。如果是 mysql,那么我想执行特定于数据库的 SQL。

我该怎么做?

0 投票
4 回答
44098 浏览

ruby-on-rails - Ruby on Rails 的 varchar 迁移问题

我创建了一个包含“注释”列的新表。我相信默认值为 varchar(255),但我希望此列是文本区域与字段,并允许更多数据。我想我会在 ActiveRecord::Migration 文件中进行此更改,但我对格式感到好奇。例如,我是否只需将 varchar(255) 更改为 varchar(1000) ?(如果是这样,格式是什么?

那是正确的格式吗?此外,如何让输入字段成为多行。对不起,如果这很简单,但我是编程和 RoR 的新手。谢谢。

0 投票
2 回答
325 浏览

mysql - 运行rails db迁移后mysql缺少字段

我有一个 Rails 迁移:

注意“t.int :sec_code”行。它似乎执行成功:

但未创建“sec_code”列:

为什么没有创建 sec_code 列?看来我应该得到一个错误...