railslearner
railslearner

Reputation: 1821

Rails Heroku Deployment

I deployed with Heroku and files transferred fine, but the app isn't working. I think it has something to do with production database but I can't seem to figure out how to solve it. My app works fine under development on my machine. I ran some rake db commands on heroku such as

$ heroku rake db:reset --trace

and I got

rake aborted! no such file to load -- faker /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:inload' /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:ineach' /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:inload_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:inmethod_missing' /app/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:inraw_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:instandard_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:inrun' /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:inrun' /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 (in /app)

then, I ran $ RAILS_ENV=production rake db:migrate --trace

and got

** Invoke db:migrate (first_time) ** Invoke environment (first_time) ** Execute environment ** Execute db:migrate == CreateUsers: migrating ==================================================== -- create_table(:users) -> 0.0012s == CreateUsers: migrated (0.0013s) ===========================================

== AddEmailUniquenessIndex: migrating ======================================== -- add_index(:users, :email, {:unique=>true}) -> 0.0008s == AddEmailUniquenessIndex: migrated (0.0009s) ===============================

== AddPasswordToUsers: migrating ============================================= -- add_column(:users, :encrypted_password, :string) -> 0.0352s == AddPasswordToUsers: migrated (0.0353s) ====================================

== AddSaltToUsers: migrating ================================================= -- add_column(:users, :salt, :string) -> 0.0005s == AddSaltToUsers: migrated (0.0006s) ========================================

== AddAdminToUsers: migrating ================================================ -- add_column(:users, :admin, :boolean, {:default=>false}) -> 0.0092s == AddAdminToUsers: migrated (0.0093s) =======================================

== CreateMicroposts: migrating =============================================== -- create_table(:microposts) -> 0.0009s == CreateMicroposts: migrated (0.0010s) ======================================

== CreateRelationships: migrating ============================================ -- create_table(:relationships) -> 0.0009s -- add_index(:relationships, :follower_id) -> 0.0004s -- add_index(:relationships, :followed_id) -> 0.0004s == CreateRelationships: migrated (0.0019s) ===================================

== CreateCarts: migrating ==================================================== -- create_table(:carts) -> 0.0014s == CreateCarts: migrated (0.0015s) ===========================================

== CreateLineItems: migrating ================================================ -- create_table(:line_items) -> 0.0010s == CreateLineItems: migrated (0.0010s) =======================================

== AddQuantityToLineItem: migrating ========================================== -- add_column(:line_items, :quantity, :integer, {:default=>1}) -> 0.0006s == AddQuantityToLineItem: migrated (0.0007s) =================================

== CombineItemsInCart: migrating ============================================= == CombineItemsInCart: migrated (0.0134s) ====================================

== CreateOrders: migrating =================================================== -- create_table(:orders) -> 0.0011s == CreateOrders: migrated (0.0012s) ==========================================

== AddOrderIdToLineItem: migrating =========================================== -- add_column(:line_items, :order_id, :integer) -> 0.0005s == AddOrderIdToLineItem: migrated (0.0005s) ==================================

== AddUsernameToUsers: migrating ============================================= -- add_column(:users, :username, :string) -> 0.0005s == AddUsernameToUsers: migrated (0.0006s) ====================================

== AddUsernameUniquenessIndex: migrating ===================================== -- add_index(:users, :username, {:unique=>true}) -> 0.0012s == AddUsernameUniquenessIndex: migrated (0.0014s) ============================

== CreateStores: migrating =================================================== -- create_table(:stores) -> 0.0010s == CreateStores: migrated (0.0011s) ==========================================

== AddPasswordToStores: migrating ============================================ -- add_column(:stores, :encrypted_password, :string) -> 0.0007s == AddPasswordToStores: migrated (0.0008s) ===================================

== AddUsernameToStores: migrating ============================================ -- add_column(:stores, :username, :string) -> 0.0006s == AddUsernameToStores: migrated (0.0007s) ===================================

== AddSaltToStores: migrating ================================================ -- add_column(:stores, :salt, :string) -> 0.0009s == AddSaltToStores: migrated (0.0010s) =======================================

== AddAdminToStores: migrating =============================================== -- add_column(:stores, :admin, :boolean, {:default=>false}) -> 0.0008s == AddAdminToStores: migrated (0.0009s) ======================================

== RemoveNameFromOrders: migrating =========================================== -- remove_column(:orders, :name) -> 0.0062s == RemoveNameFromOrders: migrated (0.0063s) ==================================

== AddFirstNameToOrders: migrating =========================================== -- add_column(:orders, :first_name, :string) -> 0.0005s == AddFirstNameToOrders: migrated (0.0006s) ==================================

== AddLastNameToOrders: migrating ============================================ -- add_column(:orders, :last_name, :string) -> 0.0005s == AddLastNameToOrders: migrated (0.0006s) ===================================

== AddAddress1ToOrders: migrating ============================================ -- add_column(:orders, :address1, :text) -> 0.0006s == AddAddress1ToOrders: migrated (0.0007s) ===================================

== AddCardExpiresOnToOrders: migrating ======================================= -- add_column(:orders, :card_expires_on, :date) -> 0.0005s == AddCardExpiresOnToOrders: migrated (0.0006s) ==============================

== AddBillingidToUsers: migrating ============================================ -- add_column(:users, :billing_id, :string) -> 0.0005s == AddBillingidToUsers: migrated (0.0006s) ===================================

== RemoveNameFromStores: migrating =========================================== -- remove_column(:stores, :name) -> 0.0093s == RemoveNameFromStores: migrated (0.0094s) ==================================

== RemoveSaltFromStores: migrating =========================================== -- remove_column(:stores, :salt) -> 0.0079s == RemoveSaltFromStores: migrated (0.0080s) ==================================

== RemoveAdminFromStores: migrating ========================================== -- remove_column(:stores, :admin) -> 0.0065s == RemoveAdminFromStores: migrated (0.0066s) =================================

== RemoveUsernameFromStores: migrating ======================================= -- remove_column(:stores, :username) -> 0.0063s == RemoveUsernameFromStores: migrated (0.0065s) ==============================

== AddStorenameToStores: migrating =========================================== -- add_column(:stores, :store_name, :string) -> 0.0006s == AddStorenameToStores: migrated (0.0007s) ==================================

== RemoveEncryptedPasswordFromStores: migrating ============================== -- remove_column(:stores, :encrypted_password) -> 0.0060s == RemoveEncryptedPasswordFromStores: migrated (0.0061s) =====================

== AddUserIdToStores: migrating ============================================== -- add_column(:stores, :user_id, :integer) rake aborted! An error has occurred, this and all later migrations canceled:

SQLite3::SQLException: duplicate column name: user_id: ALTER TABLE "stores" ADD "user_id" integer

The error:

== AddUserIdToStores: migrating ============================================== -- add_column(:stores, :user_id, :integer) rake aborted! An error has occurred, this and all later migrations canceled:

SQLite3::SQLException: duplicate column name: user_id: ALTER TABLE "stores" ADD "user_id" integer

I don't get this because I didn't add this column twice. I messed around with migration files, does that have anything to do with this? Thanks. I really hope somebody can help with this.

Upvotes: 2

Views: 436

Answers (1)

mikewilliamson
mikewilliamson

Reputation: 24803

Migrations tend to break when you run enough of them in a row. If you are creating your db from scratch use:

heroku db:schema:load

Generally I tend to get something reasonable going in my dev database and simply use

heroku db:push

If you are not familiar with it, it will copy both schema and data from your dev db to your app db on heroku. Either one of those might be a reasonable workaround for your issue. I hope that helps.

Upvotes: 4

Related Questions