Tag: 迁移

如何在Rails中向数据库添加多个列

嗨,我刚刚在RoR中创建了一个数据库。 我现在想要添加10个列。 但是,我不想使用以下类型的命令,一次只添加一列: rails generate migration AddClosing_Hrs1ToBusinesses closing_hrs1:string 有没有办法将多个列添加到我的数据库,而无需像上面那样单独为每个列键入命令?

如何使用不同的数据库模式管理git分支?

我有一个项目,我需要处理一个新function,需要重新设计部分数据库,同时保持主开发分支在旧模式上工作。 管理这样的项目的最佳实践是什么? 我想在处理新function时有一个单独的数据库,但意识到这需要将数据库配置检入存储库,这是不行的。 还有其他方法可以解决这个问题吗? 播种种子数据 在发布这个答案之后,答案就出现了 – 我应该有一些脚本用种子数据填充我的数据库。 这样我就可以在分支之间切换时删除/重新创建/播种数据库。

Rails迁移的命名约定

是否有Rails迁移的最佳实践命名约定,特别是在编辑模型时? 例如,如果我在Foo模型中添加一个列bar ,我应该将其命名为edit_foo或add_bar_to_foo 我假设如果我正在编辑多个模型,那么我应该创建多个迁移,但是如果我对单个模型进行多次修改,我会将其命名为add_bar_remove_x_edit_y_to_foo吗?

Rails 4.2外键

Rails 4.2新增支持添加和删除外键(在迁移中),例如: # add a foreign key to `articles.author_id` referencing `authors.id` add_foreign_key :articles, :authors 我不明白的是:这是怎么回事 add_foreign_key :articles, :authors 不同于此: add_column :articles, :author_id, :integer 谢谢你的任何澄清!

Heroku迁移:类型“bytea”不允许使用类型修饰符

我在Heroku上运行了一些迁移,我遇到了这个问题。 我在其中一个迁移中有这一行来创建一个新表: t.binary :file, :limit => 10.megabytes Heroku给了我这个PostgreSQL错误: An error has occurred, this and all later migrations canceled: PGError: ERROR: type modifier is not allowed for type “bytea” LINE 1: …”file” bytea(10485760)… ^ : CREATE TABLE “files” (“id” serial primary key, “file” bytea(10485760), “created_at” timestamp, “updated_at” timestamp) 如何更改我的迁移,以便它与MySQL和Postgre一起使用?

每次迁移后你需要重启Heroku吗?

最近我遇到了一个问题,我的数据库方案改变没有反映在Heroku PG上。 我仔细检查看到迁移和种子都成功了。 甚至更奇怪的是db方案更改在暂存heroku部署(在完全相同的迁移/种子之后)上工作正常。 经过一番搜索后,我了解到你应该在迁移后通过以下方式重新启动heroku: heroku restart –app=app_name 我从来没有这样做过(我不是一个老手,但我之前已经进行了大量的迁移,并且从来没有因为这个特殊原因而重新启动heroku)。 每次迁移后我真的需要重新启动heroku吗? 或者这更像是一个案例的事情?

Rails:运行迁移等rake任务

我的开发团队需要更精确地执行rake任务。 某些任务只需在特定代码更改后运行一次。 在没有太具体的情况下,在代码中实现新用户的新业务规则之后,需要更新某些现有用户记录。 我们喜欢迁移如何使用db表进行日志记录。 是否有类似的工具用于rake任务? 我们可以破解Rails’/ ActiveRecord的迁移系统以进行rake任务吗? 我们不希望将与db相关的迁移与rake任务混合在一起,因此任何明确保持这些迁移的解决方案都会很棒。 谢谢。

Rails中的聚合迁移

我有几十个Rails数据库迁移,写了一年多。 有没有办法将它们聚合到一个迁移,以便我只看到数据库的完整DDL语句,因为它现在存在? 我只需要当前的快照,没有我们如何达到它的所有历史记录。

尝试rake db:migrate时,未在rails项目中选择数据库

使用rails应用程序,有一些奇怪的数据库/ rake问题。 当我执行: rake db:migrate 我收到以下错误: Mysql2::Error: No database selected: SHOW TABLES (See full trace by running task with –trace) 跟踪并未显示出有用的信息。 可以在这里看到: http : //pastebin.com/WdsguudC 配置文件看起来正确,用户正在登录,或者我会遇到某种访问错误。 数据库存在,用户具有正确的权限,我可以手动访问和操作它。 我做了一堆谷歌搜索,并没有发现任何有用的东西。 不确定是否还有其他需要提供的代码,因为这似乎是一个相当低级别的问题。

Rails模型validation器打破了早期的迁移

我在rails应用程序中有一系列迁移,其中包括以下步骤: 创建“用户”模型的基本版本 创建此模型的实例 – 系统中至少需要一个初始用户,以便您可以登录并开始使用它 更新“用户”模型以添加新字段/列。 现在我在这个新字段/列上使用“validates_inclusion_of”。 这在我的初始开发机器上运行良好,该机器已经有一个应用了这些迁移的数据库。 但是,如果我转到新计算机并运行所有迁移,则步骤2失败,因为validates_inclusion_of失败,因为迁移3中的字段尚未添加到模型类中。 作为一种解决方法,我可以注释掉“validation_…”行,运行迁移并取消注释,但这并不好。 更好的方法是重新排序我的迁移,以便在添加所有列之后创建用户(步骤2)。 我虽然是铁杆新手,所以我想我会问为什么处理这种情况的首选方法是:)