【问题标题】:DB:Migrate for Ruby On RailsDB:迁移到 Ruby On Rails
【发布时间】:2015-04-09 16:50:58
【问题描述】:

我正在使用 Ruby on Rails。

我正在使用本地用户更新数据库:

  • 使用“rails 控制台”
  • 运行 rails 服务器
  • 检查 localhost:3000

用户已添加到我的本地主机上。

然后我尝试运行步骤 3-7

  1. 更改本地代码
  2. 在本地运行任何迁移
  3. 将所有更改的文件添加到 Git git add 。
  4. 将所有添加的文件提交到 git git commit -m "Adding features"
  5. 将更改推送到 Heroku git push heroku master - 假设您使用 heroku 作为远程名称并且您在 master 分支中工作
  6. 如果您有迁移,请运行 heroku run rake db:migrate 以在 HEROKU 上运行迁移
  7. 迁移后重启 heroku

在第 6 步之后,我得到了这个结果:

"Running `rake db:migrate` attached to terminal... up, run.5819
Migrating to CreateUsers (20140812155921)
== 20140812155921 CreateUsers: migrating ======================================
-- create_table(:users)
   -> 0.0572s
== 20140812155921 CreateUsers: migrated (0.0574s) =============================

Migrating to AddIndexToUsersEmail (20140812200300)
== 20140812200300 AddIndexToUsersEmail: migrating =============================
-- add_index(:users, :email, {:unique=>true})
   -> 0.0252s
== 20140812200300 AddIndexToUsersEmail: migrated (0.0254s) ====================

Migrating to AddPasswordDigestToUsers (20140812204144)
== 20140812204144 AddPasswordDigestToUsers: migrating =========================
-- add_column(:users, :password_digest, :string)
   -> 0.0039s
== 20140812204144 AddPasswordDigestToUsers: migrated (0.0041s) ================

Migrating to AddRememberTokenToUsers (20140814171549)
== 20140814171549 AddRememberTokenToUsers: migrating ==========================
-- add_column(:users, :remember_token, :string)
   -> 0.0067s
-- add_index(:users, :remember_token)
   -> 0.0171s
== 20140814171549 AddRememberTokenToUsers: migrated (0.0275s) =================

Migrating to AddAdminToUsers (20140815204326)
== 20140815204326 AddAdminToUsers: migrating ==================================
-- add_column(:users, :admin, :boolean, {:default=>false})
   -> 0.0963s
== 20140815204326 AddAdminToUsers: migrated (0.0977s) =========================

Migrating to CreateMicroposts (20140815212754)
== 20140815212754 CreateMicroposts: migrating =================================
-- create_table(:microposts)
   -> 0.0256s
-- add_index(:microposts, [:user_id, :created_at])
   -> 0.0350s
== 20140815212754 CreateMicroposts: migrated (0.0611s) ========================

Migrating to CreateRelationships (20140816000750)
== 20140816000750 CreateRelationships: migrating ==============================
-- create_table(:relationships)
   -> 0.0217s
-- add_index(:relationships, :follower_id)
   -> 0.0385s
-- add_index(:relationships, :followed_id)
   -> 0.0195s
-- add_index(:relationships, [:follower_id, :followed_id], {:unique=>true})
   -> 0.0226s
== 20140816000750 CreateRelationships: migrated (0.1057s) ====================="

当我这样做时: heroku 打开

现在尝试登录它说我的用户信息无效,heroku 支持说没有用户记录。

有人知道我可以在这里做什么吗?这个文件夹也是从我正在处理的另一个项目中复制过来的,所以我删除了 .git 文件并创建了一个新的存储库。我只是不知道为什么我的数据库可以在本地工作,但不能在 heroku 上工作。

非常感谢。

最好, 大卫

【问题讨论】:

  • 我不明白你的意思,你是否希望在部署时将本地创建的用户上传到服务器?
  • 您好 Mohammad,是的,我希望能够在本地创建 10 个预填充用户。然后,当我部署它时,会填充这 10 个用户。目前这 10 个用户只会在本地填充,而不是在 heroku 网站上。
  • 检查我的种子答案

标签: ruby-on-rails database git sqlite heroku


【解决方案1】:

这是您可能想要推送的示例种子文件

# /db/seeds.rb
User.where(email: 'admin@domain.com').first_or_create! do |user|
  user.name = 'admin'
  user.password = 'temporarypassword'
end

然后将其推送到服务器并运行种子,您需要尽快登录并更改密码,因为密码已被推送到版本控制中。

【讨论】:

    【解决方案2】:

    您创建的用户仅存储在您的本地数据库中。当您推送到 Heroku 时,您需要通过用户注册界面或种子文件在 Heroku 数据库中创建用户。

    【讨论】:

    • 如何通过种子文件创建它?我一直在阅读有一种方法可以传输它,但如果我的数据库是 sqlite 则没有
    猜你喜欢
    • 2011-04-29
    • 1970-01-01
    • 1970-01-01
    • 2014-02-22
    • 2013-11-03
    • 1970-01-01
    • 2019-12-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多