问题标签 [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.
ruby-on-rails - 如何在同一张表之间做has_many和has_one?
我有一个表格联系人和一个表格实体。一个实体可以有多个联系人,而同一个实体应该存储一个特殊的联系人作为主管。
我在其他地方找不到任何直接的答案,但有这样的事情:
我怎样才能实现它并拥有来自 ActiveRecord 的 Entity.first.entity_contact 之类的东西?
非常感谢大家
ruby-on-rails - 将字段添加到迁移表后,方法值为“nil”而不是“true”或“false”
我在我的 schema.rb 文件中的“成员”表中添加了一个名为“custom_design_enabled”的字段,作为默认值为 true 的布尔值。当我尝试在 Rails 控制台中更改它时,它说该字段是“nil”而不是“true”或“false”。我认为我不小心遗漏了迁移过程的一部分,它为“custom_design_enabled”方法提供了一个值。谁能帮我解决这个问题?
mysql - 在迁移中使用我的 schema.rb 时,我收到关于 ID 字段的错误
免责声明:我知道这种rake db:schema:load
方法,但我的组织长期以来一直忽略 git 存储库中的 schema.rb 状态,采用迁移方法比让整个团队改变他们的行为更容易。所以请假设我理解该方法的存在,并且我已经测量了它的可行性。请不要对 rails “应该完成”的方式发表评论,因为目前这对我来说不是一个有效可行的选择。
现在我把它从我的系统中拿出来了。
我在跑:
我的代码库使用迁移存档方法,我们定期将所有迁移压缩为一个迁移,该迁移实际上是schema.rb
文件的快照,然后存档现有迁移。这在我们的本地和测试环境中执行,但不在我们的生产环境中执行。
最近我尝试使用这种方法,但是当我执行测试时,我得到了一堆这些错误:
为了这个问题,可以安全地假设我所有表上的 ID 字段都是使用 Rails 默认方法生成的,并且我没有id
在迁移中手动指定。
生成的 schema.rb 生成这种类型的输出:
该块中没有 ID 字段的索引声明,所以我假设 Rails 为我假设了 ID 字段。
问题似乎是schema.rb
定义没有假定AUTO_INCREMENT
ID 字段的默认值。
任何人对为什么会发生这种情况或如何解决它有任何想法?
提前致谢!
ruby-on-rails - Rake db:setup 不运行 rails db:migrate, schema.rb 不存在错误
在 Rails 6 上,我希望rake db:setup
执行db:create
,db:migrate
并且db:seed
我只有一个数据模型,并且它的表的记录创建是写在db/seeds.rb
database.yml
还有一个新的用户凭证,它是通过sudo -u postgres createuser -s new_user
但rake db:setup
返回:
其中sudo -u postgres psql
确实创建了数据库,但没有关系(没有种子表)
当我跑步时rails db:migrate
然后当我rake db:setup
第二次运行时:
注意到数据库从一开始就已经存在,rake db:setup
但现在它能够为表播种
我不明白为什么rake db:setup
第一次运行在播种前没有进行必要的迁移
ruby-on-rails - Rails 6,切换Git分支后架构文件与迁移文件不匹配
Rails 6,使用 sqlite3 进行开发。
我的 schema.rb 有一个不应该存在的文件:没有迁移文件(在当前的git 分支上)说应该生成它。通过它的名字,我可以看到它来自我放弃的早期分支,并且没有回去尝试不同的方法来构建我的 rails 应用程序。
仔细检查:当我尝试访问 Rails 控制台中的表时出现名称错误,因此它仅存在于模式文件中,而不存在于数据库本身中。
我可以强制 rails 运行或确认当前架构与迁移文件匹配,如果不匹配,是否会运行迁移?
编辑/更新: 我需要澄清一下我有 6 个迁移文件,我检查过这些文件以确保它们都不是来自早期废弃的分支。
(管理员是有问题的表)
ActiveRecord::Base.connection.tables
在rails命令行中生成:
["schema_migrations", "ar_internal_metadata", "events", "admins", "details"]
当我这样做时,Event
我得到列名和类型。但是当我做管理员时,我得到
所以问题是:如何正确地将数据库重置为