Rails Heroku Deployment - PullRequest
       25

Rails Heroku Deployment

2 голосов
/ 07 апреля 2011

Я развернул с Heroku и файлы были переданы нормально, но приложение не работает. Я думаю, что это как-то связано с производственной базой данных, но я не могу понять, как ее решить. Мое приложение отлично работает в стадии разработки на моей машине. Я запустил несколько команд rake db на heroku, таких как

$ Герои рейка дБ: сброс - трассировка

и я получил

грабли прерваны! нет такого файла для загрузки - фейкер /app/lib/tasks/sample_data.rake:1:in require' /app/lib/tasks/sample_data.rake:1 /app/.bundle/gems/ruby/1.8/gems/railties-3.0.1/lib/rails/engine.rb:131:in load ' /app/.bundle/gems/ruby/1.8/gems/railties-3.0.1/lib/rails/engine.rb:131:in load_tasks' /app/.bundle/gems/ruby/1.8/gems/railties-3.0.1/lib/rails/engine.rb:131:in каждый ' /app/.bundle/gems/ruby/1.8/gems/railties-3.0.1/lib/rails/engine.rb:131:in load_tasks' /app/.bundle/gems/ruby/1.8/gems/railties-3.0.1/lib/rails/application.rb:141:in load_tasks ' /app/.bundle/gems/ruby/1.8/gems/railties-3.0.1/lib/rails/application.rb:77:in send' /app/.bundle/gems/ruby/1.8/gems/railties-3.0.1/lib/rails/application.rb:77:in method_missing ' / Приложение / Rakefile: 7 /app/.bundle/gems/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2383:in load' /app/.bundle/gems/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2383:in raw_load_rakefile ' /app/.bundle/gems/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2017:in load_rakefile' /app/.bundle/gems/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in standard_exception_handling ' /app/.bundle/gems/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2016:in load_rakefile' /app/.bundle/gems/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2000:in run ' /app/.bundle/gems/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in standard_exception_handling' /app/.bundle/gems/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:1998:in run ' /app/.bundle/gems/ruby/1.8/gems/rake-0.8.7/bin/rake:31 /usr/ruby1.8.7/bin/rake:19:in `load ' /usr/ruby1.8.7/bin/rake:19 (в / приложение)

тогда я побежал $ RAILS_ENV = производственный рейк, дБ: перенос - трассировка

и получил

** Invoke db: migrate (first_time) ** Вызвать среду (first_time) ** Выполнить среду ** Выполнить БД: мигрировать == CreateUsers: перенос ================================================== ======= - create_table (: пользователи) -> 0,0012 с == CreateUsers: перенесено (0,0013 с) ============================================== ==

== AddEmailUniquenessIndex: перенос =================================================== - add_index (: пользователи,: электронная почта, {: unique => true}) -> 0,0008 с == AddEmailUniquenessIndex: перенесено (0,0009 с) ==============================

== AddPasswordToUsers: миграция =============================================== === - add_column (: users,: encrypted_password,: string) -> 0,0352 с == AddPasswordToUsers: перенесено (0.0353s) ===================================

== AddSaltToUsers: миграция =============================================== ======= - add_column (: пользователи,: соль,: строка) -> 0,0005 с == AddSaltToUsers: перенесено (0,0006s) =============================================

== AddAdminToUsers: миграция =============================================== ====== - add_column (: users,: admin,: boolean, {: default => false}) -> 0,0092 с == AddAdminToUsers: перенесено (0.0093 с) ======================================

== CreateMicroposts: перенос ========================================= ===== - create_table (: микросообщения) -> 0,0009 с == CreateMicroposts: перенесено (0,0010 с) ===========================================

== CreateRelationships: перенос ========================================= == - create_table (: отношения) -> 0,0009 с - add_index (: отношения,: follower_id) -> 0,0004 с - add_index (: отношения,: follow_id) -> 0,0004 с == CreateRelationships: перенесено (0,0019 с) ==================================

== CreateCarts: миграция =============================================== ========== - create_table (: тележки) -> 0,0014 с == CreateCarts: перенесено (0,0015 с) ========================================= ==

== CreateLineItems: перенос ========================================= ====== - create_table (: line_items) -> 0,0010 с == CreateLineItems: перенесено (0.0010 с) ============================================

== AddQuantityToLineItem: перенос =============================================== - add_column (: line_items,: количество,: целое число, {: default => 1}) -> 0,0006с == AddQuantityToLineItem: перенесено (0,0007 с) ================================

== CombineItemsInCart: миграция =============================================== === == CombineItemsInCart: перенесено (0,0134 с) ===================================

== CreateOrders: перенос ================================================== - create_table (: orders) -> 0.0011s == CreateOrders: перенесено (0.0012s) =========================================

== AddOrderIdToLineItem: перенос =========================================== - add_column (: line_items,: order_id,: integer) -> 0.0005s == AddOrderIdToLineItem: перенесено (0.0005s) =========================================

== AddUsernameToUsers: перенос =================================================== - add_column (: пользователи,: имя пользователя,: string) -> 0,0005s == AddUsernameToUsers: перенесено (0,0006s) ====================================

== AddUsernameUniquenessIndex: перенос ==================================== - add_index (: пользователи,: имя пользователя, {: unique => true}) -> 0,0012 с == AddUsernameUniquenessIndex: перенесено (0,0014 с) ============================

== CreateStores: перенос ================================================== - create_table (: stores) ->0,0010 с == CreateStores: перенесено (0,0011 с) =========================================

== AddPasswordToStores: миграция ============================================ - add_column (: stores,: encrypted_password,: string) -> 0,0007s == AddPasswordToStores: перенесено (0,0008s) ===================================

== AddUsernameToStores: перенос ============================================ - add_column (: stores,: username,: string) -> 0.0006s == AddUsernameToStores: перенесено (0.0007s)==========================================

== AddSaltToStores: миграция ====================================================== - add_column (: магазины,: salt,: string) -> 0,0009 с == AddSaltToStores: перенесено (0,0010 с) =============================================

== AddAdminToStores: миграция ============================================== - add_column (: stores,: admin,: boolean, {: default => false}) -> 0,0008s == AddAdminToStores: перенесено (0,0009s) ======================================

== RemoveNameFromOrders: перенос ========================================== - remove_column (: orders,: name) -> 0.0062s == RemoveNameFromOrders: перенесено (0.0063s) ==================================

== AddFirstNameToOrders: миграция =========================================== - add_column (: orders,: first_name,: string) -> 0.0005s == AddFirstNameToOrders: перенесено (0.0006s) ==================================

== AddLastNameToOrders: миграция ============================================ - add_column (: orders,: last_name,: string) -> 0,0005s == AddLastNameToOrders: перенесено (0,0006s) =========================================

== AddAddress1ToOrders: перенос ================================================= - add_column (: orders,: address1,: text) -> 0,0006s == AddAddress1ToOrders: перенесено (0,0007s) ===================================

== AddCardExpiresOnToOrders: миграция ====================================== - add_column (:orders:: card_expires_on,: date) -> 0,0005s == AddCardExpiresOnToOrders: перенесено (0,0006s) =====================================

== AddBillingidToUsers: миграция ================================================== - add_column (: пользователи,: billing_id,: строка) -> 0,0005s == AddBillingidToUsers: перенесено (0,0006s) ===================================

== RemoveNameFromStores: миграция =========================================== - remove_column (: stores,: name) -> 0.0093s == RemoveNameFromStores: перенесено (0.0094s) ==================================

== RemoveSaltFromStores: перенос ================================================== - remove_column (: stores,: salt) -> 0,0079s == RemoveSaltFromStores:перенесено (0,0080 с) =========================================

== RemoveAdminFromStores: перенос================================================ - remove_column (: stores,:admin) -> 0,0065 с== RemoveAdminFromStores: перенесено (0,0066 с) ================================

== RemoveUsernameFromStores: перенос ===================================== - remove_column (: stores,: username) -> 0,0063 с == RemoveUsernameFromStores: перенесено (0,0065 с) =============================

== AddStorenameToStores: перенос ====================================================== знак равно - add_column (: stores,: store_name,: string) -> 0,0006с == AddStorenameToStores: перенесено (0,0007 с) =================================

== RemoveEncryptedPasswordFromStores: перенос ============================= - remove_column (: stores,: encrypted_password) -> 0,0060 с == RemoveEncryptedPasswordFromStores: перенесено (0,0061 с) =====================

== AddUserIdToStores: перенос ================================================ ==== - add_column (: stores,: user_id,: integer) грабли прерваны! Произошла ошибка, эта и все последующие миграции отменены:

SQLite3 :: SQLException: повторяющееся имя столбца: user_id: ALTER TABLE "хранит" ADD "user_id" integer

Ошибка:

== AddUserIdToStores: перенос =============================================== ==== - add_column (: stores,: user_id,: integer) грабли прерваны! Произошла ошибка, эта и все последующие миграции отменены:

SQLite3 :: SQLException: повторяющееся имя столбца: user_id: ALTER TABLE "хранит" ADD "user_id" integer

Я не понимаю, потому что я не добавлял этот столбец дважды. Я возился с файлами миграции, это как-то связано с этим? Благодарю. Я действительно надеюсь, что кто-то может помочь с этим.

1 Ответ

4 голосов
/ 07 апреля 2011

Миграции имеют тенденцию прерываться, когда вы запускаете их достаточно подряд.Если вы создаете свою БД с нуля, используйте:

heroku db:schema:load

Как правило, я стараюсь найти что-то разумное в моей базе данных разработчиков и просто использую

heroku db:push

Если вы не знакомы с этим, он скопирует и схему, и данные из вашей базы данных разработчика в базу данных вашего приложения на heroku.Любой из них может быть разумным решением вашей проблемы.Надеюсь, это поможет.

...