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

ruby-on-rails - 如何使 Rails 迁移以当前 RAILS_ENV 为条件?

如何根据当前的 RAILS_ENV 进行 Rails 迁移?

具体来说,我想:

  1. 检查迁移到 head-of-master
  2. 仅在我们的暂存实例上执行迁移

这样做将允许我们执行数据库更新 - 通过迁移 - 我们只希望在我们的暂存环境中。一个示例是为特定帐户或帐户类别激活功能以进行测试。

0 投票
1 回答
274 浏览

mysql - 从应用程序创建迁移

我想创建迁移以从我的 rails 应用程序(而不是通过rails g migration xxxx)添加列,同时创建迁移我想将版本号存储到迁移以供以后可能的向下操作。

场景是,我有一个包含通用表及其字段的应用程序。该应用程序可以为多个客户部署。我想提供一种在表中定义自定义字段的方法。一旦用户选择/输入所需的数据,如 table_name、field_name、data_type 等。我将创建一个新迁移以添加字段并将版本号存储在数据库中的某处。migrate:down如果用户决定删除该字段,将使用此版本号。

还有比这更好的方法吗?

0 投票
1 回答
456 浏览

ruby-on-rails - Ruby on Rails - 问题 ActiveRecord、迁移和两列到同一个表

好的,我所拥有的是一个记录“人”历史记录的表,它记录了人(用户)、处理程序(用户)、之前的状态(JobApplicationStatus)、之后的状态(JobApplicationStatus)。

现在在我的脑海中,这可以转化为这样的表格:

我试图进行迁移,这有点工作,但它不能正常工作。

因为我想使用类似的东西:

这是我的迁移

end

def self.down drop_table :user_application_histories end end

还有我的模型,我认为它会失败

p>

0 投票
1 回答
738 浏览

ruby-on-rails - rails模型关系和迁移

在构建具有多个模型和它们之间的关系的rails应用程序时,我有一些问题试图理解......

如果我举一个基本的例子,比如模型组、模型用户和模型汽车

这些关系语句是否会自动创建以下函数:

  • 组用户
  • 用户组
  • 用户.汽车
  • 汽车用户

似乎我们有时需要在迁移中创建“引用”(例如在 Car 表中添加对 User 的引用),但这是否总是必需的?在这种情况下,创建迁移和在模型中添加关系语句有什么区别?我有时会觉得这是出于同样的目的。

非常感谢你的帮助,

问候,

卢克

0 投票
1 回答
199 浏览

mysql - 使用最新版本的 Ruby on Rails 设置 MYSQL

我是一个完全的 ruby​​ on rails 菜鸟,我一直在尝试遵循 Lynda.com 的 ruby​​ on rails 3 基本培训。但是,这是在 mysql 是默认数据库时进行的,并且不知何故从那时起默认已更改为 sqlite3。

我完全不知道如何处理与 ruby​​、迁移或数据库相关的任何事情,并且按照教程要求我能够从默认的 sqlite 切换到 mysql。有没有人可以帮助我做到这一点?我想到目前为止我已经成功地把所有事情都搞砸了,所以这就是我为记录所做的事情:

1.安装mysql。它在我的 Mac 上运行和工作。这是我进入mysql界面时显示的内容:

欢迎使用 MySQL 监视器。命令以 ; 结尾 或\g。您的 MySQL 连接 ID 为 8 服务器版本:5.5.9 MySQL Community Server (GPL)

版权所有 (c) 2000、2010,Oracle 和/或其附属公司。版权所有。

Oracle 是 Oracle Corporation 和/或其附属公司的注册商标。其他名称可能是其各自所有者的商标。

输入“帮助”;或 '\h' 寻求帮助。键入 '\c' 以清除当前输入语句。

2.将databases.yml改成mysql结构,例如:

开发:适配器:mysql2 编码:utf8 数据库:simple_cms_development 用户名:simple_cms 密码:密码套接字:/tmp/mysql.sock

3. 进入 gemfile 并添加 gem 'mysql2',虽然我也保留了 sqlite3 一个。4.运行“bundle install”以确保安装了 mysql2 gem。由于较早的错误,它一直将捆绑包中的所有内容放入名为 mysql2 的文件夹中,因此我将路径更改为“gems” 5. Ran 'gem list' 并且 mysql2 在列表中

然后我运行 db:migrate 并得到了这个错误,我查找并尝试了我在这个站点上找到的每一个解决方案,但没有一个有效。

耙中止!dlopen(/Users/Jeff/Sites/simple_cms/gems/ruby/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle, 9):库未加载:libmysqlclient.16.dylib 引用自:/Users /Jeff/Sites/simple_cms/gems/ruby/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle 原因:找不到图像 - /Users/Jeff/Sites/simple_cms/gems/ruby/1.8/gems /mysql2-0.2.6/lib/mysql2/mysql2.bundle /Users/Jeff/Sites/simple_cms/Rakefile:4

我完全被难住了,可悲的是,如果我不能通过这个,我将无法再学习任何轨道。任何人都可以帮忙吗?太感谢了 : )

0 投票
1 回答
1486 浏览

ruby-on-rails-3 - rails3迁移添加新列不会将值保存到表中

因此,我创建了以下迁移:

但是,修改视图中的各种 erb 文件后,在 edit.html.erb 中输入的值不会保存到数据库中。

我可以手动启动 SQlite3 并选择 * 表并查看列已创建但未输入任何值。我还可以手动将数字更新或插入到控制器查询和正确显示的新列中。

关于框架 udate/save 可能有什么问题的任何建议?

-丹尼尔

0 投票
2 回答
145 浏览

ruby-on-rails - 如何使用迁移将两个关联的实例插入到相应的表中?

我有两个 ActiveRecode 模型,CarUser,它们具有多对一的关联:

而且,我在数据库中有两个表,汽车用户users表具有属性car_id

我想要一个迁移,它将一个汽车实例插入到汽车表中,同时,将创建一个与汽车实例关联的用户实例,然后将其插入到用户表中。如何在迁移中做到这一点?

通过运行此迁移,汽车实例及其关联的用户实例都将存储在数据库中的相应表中。

我正在使用 Rails 3。

0 投票
1 回答
459 浏览

ruby-on-rails - 迁移运行会首先执行 'config/initializers/' 下的 rb 文件吗?

如果我运行' rake db:migrate '来运行最新的迁移,是否会触发' config/initializers/ '下的文件首先运行?

至少,当我使用“ rails generate migration XXXX ”命令创建迁移时,“ config/initializers/ ”下的 ruby​​ 文件将首先运行......所以,我想知道是不是所有的初始化文件都会运行在迁移运行之前?

0 投票
1 回答
83 浏览

ruby-on-rails - 如何在我的 Rails 3 应用程序中摆脱这种冲突情况?

config/initializers/下,我有一个 ruby​​ 文件,它将从数据库中加载我的默认汽车”实例的 ID。所以,在我的应用程序启动后,我的应用程序可以直接使用这个默认的汽车 ID。

但是,我需要首先将此默认汽车插入数据库,因此,我需要一个rake(种子)任务或数据库迁移来将默认汽车存储到数据库 Cars 表中。

冲突来了!如果我运行 rake 任务或迁移以将实例插入数据库,初始化程序文件将始终在运行之前首先运行,这意味着“ config/initializers/ ”下的 ruby​​ 文件将获得默认汽车的nil id,因为默认汽车有尚未存储在数据库中。

那么,如何摆脱这种冲突呢?(拥有该初始化程序文件的目的是仅加载默认汽车 ID ONCE 一次)是否有任何其他方法可以仅加载默认汽车 ID 一次?

- - - - - - -编辑 - - - - -

初始化程序下的代码:

0 投票
2 回答
5600 浏览

sql - 从模式生成 Rails 迁移

我正在创建一个新的 Rails 应用程序,它将与现有模式一起使用。我已获得架构 SQL,但我想创建 Rails 迁移以填充开发中的数据库。架构并不太复杂,大约有 20 个表,但是我不想通过手动创建迁移来浪费时间和冒险拼写错误。

有没有办法在给定模式的 SQL 的情况下生成 Rails 迁移?