Reputation: 1821
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: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
each'
/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'
/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: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
(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
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