对于使用Ruby 2.4.6的Rails 5.1.4应用程序,我无法使用citext进行迁移。
我有:
% psql rails_development
psql (11.2)
Type "help" for help.
[local] User# CREATE EXTENSION IF NOT EXISTS citext;
NOTICE: 42710: extension "citext" already exists, skipping
LOCATION: CreateExtension, extension.c:1656
CREATE EXTENSION
class MigrationChangeEmail < ActiveRecord::Migration[5.1]
def change
enable_extension :citext
change_column :beta_invites, :email, :citext
change_column :invites, :email, :citext
change_column :leads, :email, :citext
change_column :lite_subscriptions, :email, :citext
change_column :users, :email, :citext
change_column :user_roles, :name, :citext
end
end
== 20190610155134 MigrationChangeEmail: migrating =============================
-- enable_extension(:citext)
-> 0.0133s
-- change_column(:beta_invites, :email, :citext)
rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:
PG::UndefinedObject: ERROR: type "citext" does not exist
: ALTER TABLE "beta_invites" ALTER COLUMN "email" TYPE citext
/Users/johnsmith/.rvm/gems/ruby-2.6.3/gems/activerecord-5.1.4/lib/active_record/connection_adapters/postgresql/database_statements.rb:73:in `async_exec'
/Users/johnsmith/.rvm/gems/ruby-2.6.3/gems/activerecord-5.1.4/lib/active_record/connection_adapters/postgresql/database_statements.rb:73:in `block (2 levels) in execute'
/Users/johnsmith/.rvm/gems/ruby-2.6.3/gems/activesupport-5.1.4/lib/active_support/dependencies/interlock.rb:46:in `block in permit_concurrent_loads'
/Users/johnsmith/.rvm/gems/ruby-2.6.3/gems/activesupport-5.1.4/lib/active_support/concurrency/share_lock.rb:185:in `yield_shares'
/Users/johnsmith/.rvm/gems/ruby-2.6.3/gems/activesupport-5.1.4/lib/active_support/dependencies/interlock.rb:45:in `permit_concurrent_loads'
/Users/johnsmith/.rvm/gems/ruby-2.6.3/gems/activerecord-5.1.4/lib/active_record/connection_adapters/postgresql/database_statements.rb:72:in `block in execute'
/Users/johnsmith/.rvm/gems/ruby-2.6.3/gems/activerecord-5.1.4/lib/active_record/connection_adapters/abstract_adapter.rb:612:in `block (2 levels) in log'
/Users/johnsmith/.rvm/gems/ruby-2.6.3/gems/activerecord-5.1.4/lib/active_record/connection_adapters/abstract_adapter.rb:611:in `block in log'
/Users/johnsmith/.rvm/gems/ruby-2.6.3/gems/activesupport-5.1.4/lib/active_support/notifications/instrumenter.rb:21:in `instrument'
/Users/johnsmith/.rvm/gems/ruby-2.6.3/gems/activerecord-5.1.4/lib/active_record/connection_adapters/abstract_adapter.rb:603:in `log'
/Users/johnsmith/.rvm/gems/ruby-2.6.3/gems/activerecord-5.1.4/lib/active_record/connection_adapters/postgresql/database_statements.rb:71:in `execute'
/Users/johnsmith/.rvm/gems/ruby-2.6.3/gems/activerecord-5.1.4/lib/active_record/connection_adapters/postgresql/schema_statements.rb:428:in `change_column'
/Users/johnsmith/.rvm/gems/ruby-2.6.3/gems/activerecord-5.1.4/lib/active_record/migration.rb:849:in `block in method_missing'
/Users/johnsmith/.rvm/gems/ruby-2.6.3/gems/activerecord-5.1.4/lib/active_record/migration.rb:818:in `block in say_with_time'
/Users/johnsmith/.rvm/gems/ruby-2.6.3/gems/activerecord-5.1.4/lib/active_record/migration.rb:818:in `say_with_time'
/Users/johnsmith/.rvm/gems/ruby-2.6.3/gems/activerecord-5.1.4/lib/active_record/migration.rb:838:in `method_missing'
/Users/johnsmith/Documents/ie/cpc/db/migrate/20190610155134_migration_change_email.rb:5:in `change'
/Users/johnsmith/.rvm/gems/ruby-2.6.3/gems/activerecord-5.1.4/lib/active_record/migration.rb:792:in `exec_migration'
/Users/johnsmith/.rvm/gems/ruby-2.6.3/gems/activerecord-5.1.4/lib/active_record/migration.rb:776:in `block (2 levels) in migrate'
/Users/johnsmith/.rvm/gems/ruby-2.6.3/gems/activerecord-5.1.4/lib/active_record/migration.rb:775:in `block in migrate'
/Users/johnsmith/.rvm/gems/ruby-2.6.3/gems/activerecord-5.1.4/lib/active_record/connection_adapters/abstract/connection_pool.rb:408:in `with_connection'
/Users/johnsmith/.rvm/gems/ruby-2.6.3/gems/activerecord-5.1.4/lib/active_record/migration.rb:774:in `migrate'
/Users/johnsmith/.rvm/gems/ruby-2.6.3/gems/activerecord-5.1.4/lib/active_record/migration.rb:953:in `migrate'
/Users/johnsmith/.rvm/gems/ruby-2.6.3/gems/activerecord-5.1.4/lib/active_record/migration.rb:1230:in `block in execute_migration_in_transaction'
/Users/johnsmith/.rvm/gems/ruby-2.6.3/gems/activerecord-5.1.4/lib/active_record/migration.rb:1298:in `block in ddl_transaction'
/Users/johnsmith/.rvm/gems/ruby-2.6.3/gems/activerecord-5.1.4/lib/active_record/connection_adapters/abstract/database_statements.rb:235:in `block in transaction'
/Users/johnsmith/.rvm/gems/ruby-2.6.3/gems/activerecord-5.1.4/lib/active_record/connection_adapters/abstract/transaction.rb:194:in `block in within_new_transaction'
/Users/johnsmith/.rvm/gems/ruby-2.6.3/gems/activerecord-5.1.4/lib/active_record/connection_adapters/abstract/transaction.rb:191:in `within_new_transaction'
/Users/johnsmith/.rvm/gems/ruby-2.6.3/gems/activerecord-5.1.4/lib/active_record/connection_adapters/abstract/database_statements.rb:235:in `transaction'
/Users/johnsmith/.rvm/gems/ruby-2.6.3/gems/activerecord-5.1.4/lib/active_record/transactions.rb:210:in `transaction'
/Users/johnsmith/.rvm/gems/ruby-2.6.3/gems/activerecord-5.1.4/lib/active_record/migration.rb:1298:in `ddl_transaction'
/Users/johnsmith/.rvm/gems/ruby-2.6.3/gems/activerecord-5.1.4/lib/active_record/migration.rb:1229:in `execute_migration_in_transaction'
/Users/johnsmith/.rvm/gems/ruby-2.6.3/gems/activerecord-5.1.4/lib/active_record/migration.rb:1201:in `block in migrate_without_lock'
/Users/johnsmith/.rvm/gems/ruby-2.6.3/gems/activerecord-5.1.4/lib/active_record/migration.rb:1200:in `each'
/Users/johnsmith/.rvm/gems/ruby-2.6.3/gems/activerecord-5.1.4/lib/active_record/migration.rb:1200:in `migrate_without_lock'
/Users/johnsmith/.rvm/gems/ruby-2.6.3/gems/activerecord-5.1.4/lib/active_record/migration.rb:1148:in `block in migrate'
/Users/johnsmith/.rvm/gems/ruby-2.6.3/gems/activerecord-5.1.4/lib/active_record/migration.rb:1317:in `with_advisory_lock'
/Users/johnsmith/.rvm/gems/ruby-2.6.3/gems/activerecord-5.1.4/lib/active_record/migration.rb:1148:in `migrate'
/Users/johnsmith/.rvm/gems/ruby-2.6.3/gems/activerecord-5.1.4/lib/active_record/migration.rb:1007:in `up'
/Users/johnsmith/.rvm/gems/ruby-2.6.3/gems/activerecord-5.1.4/lib/active_record/migration.rb:985:in `migrate'
/Users/johnsmith/.rvm/gems/ruby-2.6.3/gems/apartment-2.2.0/lib/apartment/migrator.rb:16:in `block in migrate'