2012-06-13 3 views
0

Я хочу сделать запустить миграцию на моем приложении, что у меня есть на Heroku, но я получаю эту ошибку:Heroku запустить грабли БД: мигрировать ошибка

Running `rake db:migrate` attached to terminal... up, run.1 
DEPRECATION WARNING: You have Rails 2.3-style plugins in vendor/plugins! Support for these plugins will be removed in Rails 4.0. Move them out and bundle them in your Gemfile, or fold them in to your app as lib/myplugin/* and config/initializers/myplugin.rb. See the release notes for more on this: http://weblog.rubyonrails.org/2012/1/4/rails-3-2-0-rc2-has-been-released. (called from <top (required)> at /app/Rakefile:7) 
DEPRECATION WARNING: You have Rails 2.3-style plugins in vendor/plugins! Support for these plugins will be removed in Rails 4.0. Move them out and bundle them in your Gemfile, or fold them in to your app as lib/myplugin/* and config/initializers/myplugin.rb. See the release notes for more on this: http://weblog.rubyonrails.org/2012/1/4/rails-3-2-0-rc2-has-been-released. (called from <top (required)> at /app/Rakefile:7) 
DEPRECATION WARNING: You have Rails 2.3-style plugins in vendor/plugins! Support for these plugins will be removed in Rails 4.0. Move them out and bundle them in your Gemfile, or fold them in to your app as lib/myplugin/* and config/initializers/myplugin.rb. See the release notes for more on this: http://weblog.rubyonrails.org/2012/1/4/rails-3-2-0-rc2-has-been-released. (called from <top (required)> at /app/Rakefile:7) 
Migrating to CreateUsers (20120525005302) 
Migrating to DeviseCreateUsers (20120611000411) 
== DeviseCreateUsers: migrating ============================================== 
-- create_table(:users) 
rake aborted! 
An error has occurred, this and all later migrations canceled: 

PGError: ERROR: relation "users" already exists 
: CREATE TABLE "users" ("id" serial primary key, "email" character varying(255) DEFAULT '' NOT NULL, "encrypted_password" character varying(255) DEFAULT '' NOT NULL, "reset_password_token" character varying(255), "reset_password_sent_at" timestamp, "remember_created_at" timestamp, "sign_in_count" integer DEFAULT 0, "current_sign_in_at" timestamp, "last_sign_in_at" timestamp, "current_sign_in_ip" character varying(255), "last_sign_in_ip" character varying(255), "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) 

Tasks: TOP => db:migrate 

У меня есть следующие файлы миграция в моем хранилище GitHub

  1. 20120525005302_create_users.rb (который пуст, не знаю, как удалить его)
  2. 20120611000411_devise_create_users.rb
  3. 20120613140535_create_authentications.rb

ответ

2

похоже, что верно следующее:

  • 20120525005302_create_users.rb попытается создать таблицу users в вашей базе данных.
  • 20120611000411_devise_create_users.rb также попытается создать таблицу users в базе данных.
  • В вашей базе данных в настоящее время уже есть таблица users, поэтому миграция не выполняется во второй миграции.

Чтобы получить users таблицу в базе данных, чтобы должным образом соответствовать 20120611000411_devise_create_users.rb миграции, вы можете сделать одну из двух вещей:

  1. Ролла назад (или падения) базы данных, а затем запустить миграцию еще раз. (Вы можете удалить 20120525005302_create_users.rb, если он пуст.)
  2. Модифицируйте свою миграцию 20120611000411_devise_create_users.rb, чтобы удалить любую существующую таблицу users, прежде чем делать что-либо еще.
  3. Измените 20120611000411_devise_create_users.rb миграцию следующим образом:
    • Вместо создания users таблицы, изменить существующую таблицу.
    • Добавление и изменение компонентов базы данных, чтобы соответствовать

Вообще, если ваше приложение в «младенческая состоянии», а затем повторно создать базу данных, как правило, быстрый способ построения первоначальной структуры приложение. Однако, если у вас уже есть важные данные в вашей таблице users, вы захотите сохранить это и продолжить, изменив миграцию 20120611000411_devise_create_users.rb, чтобы не допустить разрушения базы данных.

Ссылки

+0

Я rollbacked всю миграцию, я не имею первую миграцию и я толкнул everthing upp to github все еще есть .. – SHUMAcupcake

+0

И все, что хорошо выглядит в файле schema.rb .. https://gist.github.com/2926873 – SHUMAcupcake

+0

Теперь я удалил файл миграции, по-прежнему получаю ту же ошибку. – SHUMAcupcake

1

Похоже, у вас уже есть пользователи таблицы (вероятно, от миграции create_users), что device_create_users пытается воссоздать

Вы можете изменить миграцию create_device_users просто добавить поля, которые нужно

В качестве альтернативы, если его совершенно новое приложение без пользователей, вы можете просто удалить и попытаться повторно запущен все migraions

+0

Брус Я просто удалить, что миграция из моего приложения и GitHub соответственно .. Как мне это сделать? – SHUMAcupcake

+1

мерзавец гт 20120525005302_create_users.rb мерзавец мастер толчок происхождения Heroku запустить грабли БД: падение Heroku запустить грабли БД: создать Heroku запустить грабли БД: мигрировать –

Смежные вопросы