问题标签 [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.
ruby-on-rails - 通过现有数据库进行 Rails 迁移
我正在创建一个新的 Rails 3.1 应用程序。我希望这个新应用程序重用现有数据库(由以前的 rails 2 应用程序创建)。
我创建了新的应用程序定义模型,这些模型重用了数据库中的一些现有数据。
在开发和测试阶段一切正常,因为它运行在一个干净的表数据库上,但是在尝试部署到生产时,我收到如下消息:
但是我在迁移中的想法是
如何让 db:migrate 忽略已经存在的内容,只更改新事物和/或新类型?
我在stackoverflow上看到了类似的问题,但没有人回答这个问题。感谢您的回答。
ruby-on-rails - 在 Rails 中清理迁移的好方法是什么?
所以我已经在这个网络应用程序上工作了一年,我想将架构编译到 ONE 迁移中,这样我的文本编辑器加载速度更快,git 工作目录不会那么混乱。
搜索查找会更快。
我的任何配置/数据库都不会长 4000 像素。
ruby-on-rails-3 - 在 Rails 3 迁移中访问自定义辅助方法
在 rails 2 中,我有一个 lib/migration_helpers.rb 文件,其中包含在数据库中设置和删除外键的方法。这些方法在迁移文件中的 self.up 和 self.down 中可用,方法是在迁移文件中添加
在顶部,并且
在类声明之后立即。
在 rails 3 这不起作用,如果我尝试使用 migration_helpers.rb 中的 set_foreign_key 方法运行迁移,则会引发以下错误:
我已经检查了在 config/application.rb 中自动加载路径设置为包含 lib。该文件实际上是必需的,因为如果我注释掉 require 语句,那么 rails 就会抱怨丢失的“migration_helpers”文件。
我怀疑这是一个范围问题(rails 2 使用“def self.up”,rails 3 使用“def change”)但无法想象如何解决问题(现在我只是复制了迁移文件中的代码,只是为了检查它做了它应该做的)。
弗朗切斯科
ruby-on-rails - Rails:如何回滚拙劣的迁移
我是个白痴……在 Rails 中搞砸了迁移:
认为迁移会像模型生成器一样工作(使用references:modelname
)我做了以下工作:
这创造了迁移
现在我的开发数据库(SQLite3)在表中有一个类型references
列。event
photos
我的 schema.rb 中间有一行说:
rake db:rollback
对此无能为力:
那么,如何回滚和维护我在数据库中的开发数据呢?如果这是我唯一的选择,我什至会很乐意破坏照片表……但不想重建整个东西。该怎么办?
顺便说一句-对于任何阅读本文的人都会犯同样的愚蠢错误……不要!使用正确的迁移生成器:
ruby-on-rails - Rails 3,使用外键生成迁移
如何使用外键进行或生成迁移?我有municipios
表,我想与表关联ciudades
,表将有这些字段:(nombre_id
名称id),nombre
(名称),departamento
(部门)在这种情况下,我如何运行脚手架脚本来生成外键迁移?
ruby-on-rails - 是否有一种简单的方法可以在运行迁移之前对其进行测试?
换句话说,我想知道在运行相关迁移之前确保self.down 实际上回滚self.up 的最佳方法。
如果我需要回滚迁移但self.down不能达到目的,我该怎么办?
处理具有潜在破坏性的迁移时,最佳做法是什么?只是数据库备份?
谢谢,杜乔。
ruby-on-rails - Rails 迁移回滚失败
我在编辑 rails 迁移时犯了一个错误(我使用的是 rails 3.1.0rc5)。所以我更正了它并尝试做 arake db:rollback
后跟 a rake db:migrate db:test:prepare
。但是由于某种原因回滚失败了。这是迁移的回滚部分:
这是来自db:rollback
:
所以我只是手动删除了数据库中的资产表(我只是使用 sqlite3 dbs),注释掉该drop_table :assets
行并db:rollback
再次运行:
为什么它试图删除资产表?drop_table :assets
我从迁移中注释掉了(实际上后来删除了)该行。我什至做了一个grep -r assets
看看 rails 可能从哪里得到这个 drop 命令,但找不到任何东西。
所以我的问题是如何让这个迁移重新运行?我很好奇 rails 从哪里得到这个 drop 命令?
更新:事实证明,rails 3.1down
在回滚时实际上并没有查看迁移类的方法!它查看change
方法的迁移命令并反转它们。这就是为什么指令rake db:rollback
后仍试图删除资产表drop_table :assets
我如何解决这个问题是我将change
方法更改为旧的 rails 3.0 样式up
方法。然后rails查看了down
我从中删除drop_table
命令的方法,回滚成功。
ruby-on-rails - rake db:migrate 的问题
第一的
生成买方模型后,我做了
它工作正常。
1天后,我执行了以下命令
生成卖方模型后,我做了
我收到一个错误,买家表已经存在。为什么?我们有不同的时间戳文件。
另一个是
我使用 Rails 2.3.11 和 rake 0.8.7
ruby-on-rails - 学习 Rails 3.0 - 迁移帮助 - belongsTo
我正在开发一个照片库应用程序。Photo 与 Album 有 belongsTo 关系(Album has_many realtionship to Photo) 如何创建迁移以正确将此关系添加到数据库?我已经尝试过 - rails generate add_album_to_photo 但这只是一个空迁移。我可以向正确的方向推动。
ruby-on-rails-3 - has_many & belongs_to 在 postgres 中使用外键和数据库约束进行迁移?
我搜索了几个关于迁移的问题及其答案,但没有找到令人满意的解决方案。
我想使用简单的 has_many 和 belongs_to 关系,比如
是否有可能在迁移内部创建数据库级约束,例如
还是我必须手动执行此操作?充其量我更喜欢独立于数据库的解决方案。提前致谢!
编辑:我目前正在使用 Postgresql,但我喜欢在底层数据库方面保持灵活。
更新:为了独立于数据库的代码,我目前坚持以下迁移:
我仍然希望找到一个更优雅的解决方案。也许有一个宝石。