gpt4 book ai didi

mysql - Rails change_column 从架构中删除索引

转载 作者:行者123 更新时间:2023-11-29 07:28:53 25 4
gpt4 key购买 nike

我正在尝试使其某些列不能为空。我使用 change_column 没有问题,但其中一些列附加了一个索引,表明它是唯一的。

但是当我运行此迁移时:

change_column :users, :username, :string, null: false
change_column :users, :email, :string, null: false
change_column :users, :password, :string, null: false
change_column :users, :terms_agreed, :boolean, null: false

它删除了架构中的add_index

schema.rb

- add_index "users", ["username"], :name => "index_users_on_username_code", :unique => true
- add_index "users", ["email"], :name => "index_users_on_email_code", :unique => true
add_index "users", ["confirmation_code"], :name => "index_users_on_confirmation_code", :unique => true

如何在不删除索引的情况下执行此操作?

附言它实际上并没有删除数据库中的索引。就在 schema.rb 文件中。

最佳答案

处理迁移的行为取决于您的数据库实现。更多信息here ,但在迁移过程中,您应该在更改中明确请求索引。

class DoSomethingToTable < ActiveRecord::Migration
def change
change_column :users, :username, :string, null: false, index: true
end
end

有关更多信息,请参阅文档 information .

关于mysql - Rails change_column 从架构中删除索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33475693/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com