问题标签 [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 回答
69 浏览

sql - 将重新定义的 SQL 数据从旧应用程序导入新应用程序

我几乎完成了将我的 Symfony(在 mounth 中留下了一点不好的味道)应用程序重写(带有一些新功能)到 Rails 中。我需要将一些数据从旧应用程序导入到新的 Rails 应用程序中。

问题是架构发生了巨大变化,应该更新一些外键值

我想知道是否有一些应用程序可以帮助我重新定义导入数据,或者我应该打开 phpMyAdmin,花一些时间编辑数据库并在准备好的数据库上运行 Rails?(在我看来这不是完成这项工作的最佳方式)

0 投票
23 回答
445711 浏览

ruby-on-rails - 如何使用 Rails 迁移删除列

通过Rails 迁移删除数据库表列的语法是什么?

0 投票
2 回答
1250 浏览

ruby-on-rails - 将更新逻辑放入迁移中

有几次,我想重构某些模型的设计并最终将更新逻辑放入迁移中。但是,据我了解,这不是一个好的做法(特别是因为鼓励您使用架构文件进行部署,而不是迁移)。你如何处理这类问题?

为了澄清我的意思,假设我有一个用户模型。因为我认为只有两种用户,即“普通”用户和管理员,所以我选择使用一个简单的布尔字段来判断用户是否是管理员。

然而,在我想我需要第三类用户之后,也许是版主或类似的东西。在这种情况下,我添加了一个 UserType 模型(和相应的迁移),以及从用户表中删除“admin”标志的第二个迁移。问题来了。在“add_user_type_to_users”迁移中,我必须将管理标志值映射到用户类型。此外,为了做到这一点,用户类型必须存在,这意味着我不能使用种子文件,而是在迁移中创建用户类型(也被认为是不好的做法)。这里有一些代表这种情况的虚构代码:

如您所见,有两个有问题的部分。首先是第一个模型中的行创建部分,如果我想连续运行所有迁移,这是必要的,然后是第二个迁移中的“更新”部分,它将“admin”列映射到“type_id”列。

有什么建议吗?

0 投票
2 回答
345 浏览

ruby-on-rails - Rails 中的外键关系

我是 Rails 的初学者,我读到 Rails 在创建表时在模型级别以及迁移文件中的数据库级别强制执行外键关系。真的有必要吗,它提供了什么样的优势

0 投票
2 回答
4553 浏览

ruby-on-rails - rake db:migrate:down 用于 ruby​​-on-rails 的快捷方式

我想知道是否有一种简短的方法可以进行相当于 rake db:migrate 的向下迁移(用于向上迁移)。而不是这样做:rake db:migrate:up VERSION=1, rake db:migrate:up VERSION=2, ... 我们可以这样做:rake db:migrate!但是对于 : rake db:migrate:down VERSION=10, rake db:migrate:down VERSION=..., rake db:migrate:down VERSION=1, 有捷径吗?

坦克你的帮助!

0 投票
2 回答
767 浏览

ruby-on-rails - Rolling up Migrations?

As I understand it the point of migrations is so you can revert the database back to a known state during the last stages of development.

Right now I'm still "fleshing" out my first Rails app and I'm wondering if its ok to roll up my migrations into bigger ones rather than dozens of changes.

0 投票
1 回答
1281 浏览

ruby-on-rails - 为什么 Rails 将 String 保存为 null 到日期时间列?

我在测试验证时遇到了这种特质。迁移定义如下:

在 irb

我的问题是,为什么 ActiveRecord 将“not a time”解释为 nil 而不仅仅是设置 :window_end = “not a time”?当您将 :window_end 设置为 int 时,也会发生相同的转换为 nil。

这对我来说是个问题的原因是,如果有人试图在 :window_end (或 :window_start )列中保存一个非时间值,我希望抛出一个错误,但这里不会出现这种情况。

谢谢。

0 投票
3 回答
710 浏览

ruby-on-rails - Rails 迁移 - 寻找旧迁移的变化?

如果我有两个迁移,mig1 和 mig2,我运行 rake db:migrate,然后我回到 mig1 并更改列的默认值,当我再次运行 rake db:migrate 时会反映此更改吗?或者我是否必须为该列进行新的迁移才能进行更改?

0 投票
6 回答
35186 浏览

ruby-on-rails - 在 Rails 迁移中,如何删除字段的限制

以下是正确的吗?

0 投票
1 回答
1154 浏览

ruby-on-rails-3 - Rails3+datamapper如何做数据库迁移

我使用了 dm-rails gem,它允许 datamapper 连接到 rails-3,生成了一个脚手架和一个迁移文件,做了 rake db:migrate 用于数据库迁移,但是没有任何反应没有错误没有迁移,有人可以建议我如何运行迁移数据映射器和 rails-3。