问题标签 [schema.rb]

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 投票
8 回答
17496 浏览

ruby-on-rails - 在 git 中管理 schema.rb 的首选方法是什么?

我不想添加schema.rb.gitignore,因为我希望能够从该文件加载新的数据库模式。但是,保持它处于检查状态会导致各种虚假冲突,这些冲突很容易通过新的db:migrate:reset.

基本上我想要一种方法:

  1. 将 schema.rb 保存在存储库中以进行部署时数据库设置
  2. 将 schema.rb 保存在 '.gitignore' 中以进行一般开发

会有一两个人负责更新schema.rb并知道它是正确的。

有没有办法让我也吃蛋糕?

0 投票
7 回答
37121 浏览

ruby-on-rails - Rails:我更新迁移文件然后运行 ​​db:migrate,但我的架构没有更新

我正在尝试在我的一张表中添加一个额外的字段。

我已经在迁移文件中添加了该字段(在 db\migrate 下),然后运行“rake db:migrate”,它运行没有问题。我的文本编辑器甚至告诉我我的 schema.db 文件已更新,需要刷新。

架构文件不包含我的新字段,并且从我的视图中引用该字段的任何尝试都失败了。

我该怎么做呢?是否可以通过 rails 更新带有额外字段的表,而不必完全删除并再次重新创建数据库?

0 投票
3 回答
1241 浏览

ruby-on-rails - 我应该扁平化 Rails 迁移吗?

可以将 db/migrate/* 替换为 db/schema.rb 的内容,这样您就只有一个迁移步骤。

你们中有人这样做过吗?为什么?

0 投票
1 回答
1173 浏览

ruby-on-rails - Capistrano 部署和 schema.rb

我是 Rails 的新手,我正在尝试部署我的第一个项目。我正在使用 rails 3、ruby 1.8.7、Passanger、Mysql 和 Git

我遵循了很多教程来学习如何使用 capistrano 进行部署,并且有一个我无法弄清楚的问题。在教程中他们从不谈论 schema.rb 如果这个文件负责我已经完成的迁移并且当我们部署应用程序时,capistrano 将所有文件复制到“当前”文件夹(schema.rb 到),它怎么能在生产服务器上进行正确的迁移。我应该告诉 capistrano 为“当前”文件夹创建一个到正确 schema.rb 文件的 simlink 吗?如果是的话,我该怎么做?坦克。

0 投票
1 回答
4807 浏览

mysql - 如何使 Rails 生成具有对 MySQL 的 bigint 支持的“schema.rb”?

我正在使用 Rails 3.0.5。我使用 MySQL 作为数据库存储。我有一个模型,其中一列需要是 BIGINT。我在创建迁移文件中使用以下内容:

效果很好。

但是,当我跑步时

耙分贝:迁移

生成的“schema.rb”文件为特定列创建以下行:

这是不正确的。

我的问题是我哪里错了?为了获得正确的“schema.rb”文件,我应该做些什么?我可以更改“schema.rb”文件的生成方式吗?

请注意,“schema.rb”文件错误的事实会导致我的持续集成服务器出现问题,该服务器运行测试并使用“schema.rb”文件从头开始(在运行测试之前)创建数据库。

0 投票
3 回答
7872 浏览

ruby-on-rails - 在 rails 中查看 schema.rb 中表的内容

如果这是一个愚蠢的问题,我很抱歉,但是在我的 schema.rb 中,我有几个表,例如

是否可以查看每个表的内容,即查看每条消息和相关的用户 ID、消息内容、创建时间、链接图像等?

谢谢

0 投票
2 回答
675 浏览

ruby-on-rails - 在带有 Foreigner Gem/Plugin 的 Ruby on Rails 中,外键设置是否应该在 Schema.rb 中可见?

我正在开发一个 Ruby on Rails 应用程序,并使用 foreigner 插件在迁移中设置外键约束,例如这样。

add_foreign_key(:notifications, :invitations, :dependent => :delete)

但是,当我运行迁移时

rake db:migrate

它运行,但我的 schema.rb 文件保持不变。更改不应该反映在那里以在另一个数据库上进行设置吗?

0 投票
1 回答
6265 浏览

ruby - 使用 :sql 模式格式时如何使 rake db:migrate 生成 schema.rb

如果在中使用此选项config/application.rb

那么当你这样做时:

它只会转储db/structure.sql. 我知道它没有使用,db/schema.rb因为它正在使用该:sql选项,但是你怎么能rake db:migrate生成生成db/schema.rb呢?

我们需要它,因为 RubyMine 4.5 和 IntelliJ IDea 11db/schema.rb用于自动完成列。

0 投票
3 回答
7901 浏览

ruby-on-rails - schema.rb 由于其他分支的迁移而搞砸了

目前我正在使用一个巨大的 rails 应用程序和多个分支,每个分支都有这个应用程序的新功能。经常发生需要迁移的功能,在您将其与 master 合并之前这应该不是问题:schema.rb 已使用您的开发数据库的信息进行了更新!

澄清:

在分支中的每次迁移之前重置+种子数据库或为每个分支创建数据库不是一个选项。由于 2 GB SQL 数据的巨大大小,它是行不通的。

我的问题:

是否真的需要将 schema.rb 保留在存储库中,因为每次迁移都会重建它?

如果是这样,是否可以从迁移而不是数据库转储中构建模式?

0 投票
2 回答
386 浏览

mysql - ruby on rails 中的 schema.rb 和 mysql 数据库问题

首先,我已经学习 Rails 8 个月了,但感觉就像我昨天开始的一样,所以请多多包涵。我正在尝试解决为什么我的价值(称为可见)无法正常运行。我正在使用 Simple_form。'visible' 是单选按钮值:

这个想法是 current_user 撰写评论 - 如果他们将其设为“公开”,则任何其他用户都可以看到它,如果是私人用户,则只有他们可以看到它。单选按钮工作正常 - 当我注销时,查看不同机器上的应用程序等,单选按钮处于上次保存的状态。问题是当前的评论@review 总是对每个人可见,无论单选按钮的状态如何。

我把<%= @review.visible? %>审查表。每次我刷新页面时它都是“真”,即使单选按钮可能是假的。我保存评论,@review.visible 然后进行相应匹配。但后来我刷新,它又回到了真实。

我认为问题可能是:

在我的 schema.rb 我有:

我删除:default => true了,没有任何改进,但我听说你不应该手动干预 schema.rb 反正。

你认为 default => true 是导致问题的原因吗?做一个“迁移”是要走的路吗?我如何在迁移中说出“默认 => true”部分?

最后,虽然我的 schema.rb 有“布尔”,但我的实际数据库有visible: tinyint(1),我认为这很可疑,但我在网上阅读过它们实际上是同一回事,所以我认为这不是问题 - 如果你认为不同,让我知道。