I follow the rail instructions. I'm on the alert. 6, and I get a strange error with SQLite3 (for the record I use sqlite version 1.3.10, and the manual uses 1.3.9)
I do not get an error when running rake db: migrate, but when I start the migration for a test environment, this is what I get:
$ bundle exec rake test:models rake aborted! ActiveRecord::PendingMigrationError: Migrations are pending. To resolve this issue, run: bin/rake db:migrate RAILS_ENV=test sample_app/test/test_helper.rb:3:in `<top (required)>' sample_app/test/models/user_test.rb:1:in `require' sample_app/test/models/user_test.rb:1:in `<top (required)>' Tasks: TOP => test:models (See full trace by running task with --trace) $ bundle exec rake db:migrate RAILS_ENV=test == 20150628011937 AddIndexToUsersEmail: migrating =========================== == -- add_index(:users, :email, {:unique=>true}) rake aborted! StandardError: An error has occurred, this and all later migrations canceled: SQLite3::ConstraintException: UNIQUE constraint failed: users.email: CREATE UNIQUE INDEX "index_users_on_email" ON "users" ("email")sample_app/db/migrate/20150628011937_add_index_to_users_email.rb:3:in `change' C:in `migrate' ActiveRecord::RecordNotUnique: SQLite3::ConstraintException: UNIQUE constrain t failed: users.email: CREATE UNIQUE INDEX "index_users_on_email" ON "users" ("email") sample_app/db/migrate/20150628011937_add_index_to_users_email.rb:3:in `change' C:in `migrate' SQLite3::ConstraintException: UNIQUE constraint failed: users.email sample_app/db/migrate/20150628011937_add_index_to_users_email.rb:3:in `change' C:in `migrate' Tasks: TOP => db:migrate (See full trace by running task with --trace)
Here is my user.rb model:
class User < ActiveRecord::Base before_save { self.email = email.downcase } validates :name, presence: true, length: { maximum: 50 } VALID_EMAIL_REGEX = /\A[\w+\-.] +@ [az\d\-.]+\.[az]+\z/i validates :email, presence: true, length: { maximum: 255 }, format: { with: VALID_EMAIL_REGEX }, uniqueness: { case_sensitive: false } end
Here is my last migration
class AddIndexToUsersEmail < ActiveRecord::Migration def change add_index :users, :email, unique: true end end
I can publish any other files if they are relevant. Thanks in advance for your help!
source share