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

ruby-on-rails - 对应的回滚是什么?

我有以下 ActiveRecord 迁移:

我其实很喜欢这种references风格。references不幸的是,我在该self.down部分中找不到等效的回滚。如果我写,remove_column :projects, :subjects_id我也可以写t.integer :subjects_id,这样会更安全。

0 投票
2 回答
102 浏览

ruby-on-rails-3 - 为什么在迁移过程中出现错误以及默认数据?

然后将以下代码添加到迁移中:

============================

==============================

我收到一个错误:

** 调用 db:migrate (first_time)
** 调用环境 (first_time)
** 执行环境
** 执行 db:migrate
== CreateStates: 迁移 =================== ================================
-- create_table(:states)
-> 0.0010s
rake 中止!
发生错误,此迁移和所有后续迁移均已取消:

未初始化的常量 CreateStates::State
/Users/jondoe/.rvm/rubies/ruby-1.8.7-p330/lib/ruby/gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/backward_compatibility。 rb:20:in `const_missing'

========

似乎这应该能够做到这一点: http:
//api.rubyonrails.org/classes/ActiveRecord/Migration.html

我还尝试创建一个模型,而不仅仅是一个迁移文件。还是一样的错误。我也尝试过创建 2 个迁移(一个用于创建表,一个用于添加数据),但这也不起作用。有任何想法吗?

0 投票
6 回答
3995 浏览

ruby-on-rails - Rails 迁移错误

这看起来很简单,但我不确定出了什么问题。

我试图在我的 Rails 迁移中执行以下操作:

我收到以下错误

我唯一能想到的是导致一个问题,这个 change_column 在我将列添加到 foo 后不久发生,并且必须首先将其从 type :string 更改为 type :text 。这些每个都来自自己的迁移脚本,如下所示:

作为一个实验,我尝试更改第一个 change_column (change_column :foo, :bar, :text) 并发现这成功地改变了表格。不幸的是,我无法更改之前的任何一个迁移,只能在我们当前的实现中添加新的迁移,因此这在生产中不起作用。问题是,什么允许我更改列一次而不是两次?

更新尝试了第一个建议,但得到以下结果:

0 投票
2 回答
210 浏览

ruby-on-rails-3 - Rails3 设计身份验证迁移

我一直在弄乱我的新应用程序如何最好地代表数据库中的用户表。

我注意到一个像这样命名的迁移:

这是 Device 在安装时创建的东西吗?或者我可以只使用我手工编写的更简单的用户表迁移吗?

人们通常如何配置 Devise 并且仍然能够向用户表中添加他们特定应用程序可能需要的额外列?

谢谢,亚历克斯

0 投票
2 回答
481 浏览

mysql - 执行用户迁移时出错

我正在尝试实现 Devise 身份验证库,并添加我可能需要使用的特定于我自己的应用程序的列。

我运行 rake 迁移命令,我得到一个奇怪的错误。这是我的 devise_create_users 文件:

和一个最小的 create_users 文件

但奇怪的是,当我运行迁移时,我收到了这个错误:

这很奇怪,因为我从未在上面列出的文件中提及这些列中的任何一个。额外的列来自哪里?我的第二个 create_users 文件应该是更新而不是创建吗?

谢谢!

0 投票
2 回答
306 浏览

mysql - 更新了 rails3 迁移,但 rake:db 迁移后结果不显示

我正在使用设计迁移文件。原来是这样的:

我想像这样添加 3 列:

t.first_name t.last_name t.organization_name

因此,一旦我进行了更改,我的迁移文件看起来像这样:

然后从命令行我运行了这个命令:

生成的 db 表没有反映我尝试添加的列。这是它的样子:

知道为什么我尝试的更改没有出现吗?如何强制更改发生?

谢谢!!

0 投票
3 回答
4643 浏览

ruby-on-rails - Rails 3 迁移:布尔值(mysql vs postgreSQL)

我正在尝试在我的论坛主题上添加“粘性”选项。这就是我的迁移的样子

这在mysql本地完美运行,但是当我将更改推送到heroku(使用PostgreSQL)时,这就是我在使用控制台时得到的

为什么这个属性的默认值是字符串?

编辑:如果我保存对象,它不会改变粘性属性,即它仍然是“f”。

0 投票
1 回答
671 浏览

ruby-on-rails - 在 Rails 中添加 utf-8 和 InnoDB 指令时出现迁移语法错误

我正在尝试创建此 Rails 迁移

我在执行过程中遇到如下错误:

语法错误,意外 ',',期待 ')' create_table (:formats , :options => 'ENGINE=InnoDB D... ^ 语法错误,意外')',期待 keyword_end ...=InnoDB DEFAULT CHARSET=utf8' ) 做 |t| ... ^

语法错误,意外的keyword_end,期待$end

知道为什么会这样吗?我的语法找不到任何问题..很可能是因为我是 Rails 新手 :)

0 投票
7 回答
17311 浏览

ruby-on-rails - 如何在 Rails 迁移中将列(包含内容)移动到另一个表?

我需要将一些列从一个现有表移动到另一个。如何使用 rails 迁移来做到这一点?

上面只是创建了新列,但值是空的......

我想避免登录数据库手动更新表。

如果有办法以编程方式移动列值,性能特征是什么?它会逐行进行,还是有办法批量更新?

0 投票
1 回答
264 浏览

mysql - 数据库特定的迁移代码

我正在创建一个需要在多个数据库下运行的应用程序。我目前在迁移中有一些代码,我只想在特定数据库(postgresql 和 mysql)下运行。有什么办法设置吗?谢谢。