qiaoyu's Blog

【日记】:170207 heroku / GitHub

部署到heroku

接着重新进行heroku create,步骤如下:

  • STEP0:如果你已经有5个heroku地址,请先删掉至少一个。操作如下:

可以登入网站中删除:
https://dashboard.heroku.com/apps/
登入后,点击你要删除的那一个,点击 Settings
将页面滚动到最下方,会看到红色的 Delete app…
输入这只app的名称(就在提示上面,可以照着打),
点击 Delete app 即可

  • STEP1:打开终端,进入相应文件夹下(此时进入/job3/job-listing文件内),并另开一台跑rails。

    确认你的网站,在部署之前,是可以在本地正常运行的

  • STEP2:修改 Gemfile 档案

    sqlite3 从第7行搬到约第30到40行的group :development, :test do
    这一行里面,置于gem 'byebug'的下面。
    在末尾新增一个 production group,加上 pg 这个 gem
    group :production do
    gem 'pg'
    end

  • STEP3:command+s 存档

    修改 Gemfile 后要 bundle install
    存档
    git add .
    git commit -m "move sqlite3 to dev group & add pg to production group "

  • STEP4:在 Heroku 建立新专案

    首先记得登入
    heroku login
    创建
    heroku create
    (小提示:因为heroku为远端连结,需要等待一段时间,如果无法连上,可以尝试换一个VPN再操作)

  • STEP5:打开【.git/config】文件,检查[remote "heroku"]里的地址是否和刚刚create的地址一致,不同就改成刚刚create的地址。

  • STEP6:上传到 heroku

    以往我们都是
    git push heroku master
    这次有点小小的不同,因为我们的最新进度在 ch08。
    所以你要
    git push heroku step8:master
    (注意:此处的step8要换成哪自己最建立的分支名称)

  • STEP7:跑 heroku run rake db:migrate

    执行
    heroku run rake db:migrate

  • STEP6:大功告成!

    打开看看你的网站heroku open
    恭喜你完成!

问:为什么我的管理员账号不见了,怎么设置呢?

  • 因为

    本地的数据上传heroku的时候是不同时上传的,所以heroku没有之前写到职缺。
    管理员用户登陆才能看到后台,才能添加工作

  • 如何添加管理员:

    登入你的模魔改网站
    先创建一个用户
    然后输入heroku run rails c
    输入再本地能让用户变成管理员的指令就行了

  • 什么是让用户变成管理员的指令:

    招聘网站第二部分
    u = User.first
    u.is_admin = true
    u.save
    exit

  • 然后在后台添加职缺就好了。

问:关于heroku的所有犯错的可能

  • 部署heroku 其实没有什么大问题,主要出现在两个问题上,就是修改:

    一个是gemfile(参见rails101教材step2
    一个是地址, heroku create 这两边的问题(参见上文)

  • 你把这两项重新检查了之后,如果没有问题,

  • 只是还是没有成功,就重新来过(重新create)

  • 只要网站在本地运行没有问题,一般会成功的

问:“需要先 上传到GitHub后才能heroku” 是这样吗?

  • 回答:这是两个独立的的模块,你先做哪一个都没有关系。

问:“在github上建立新专案” 这件事是在什么时候做呢?

问题描述:rails101是在所有的功能都实作好了,网站搭建好了,才新建专案的。而job-listing第二遍时,feiben老师又带着我们先建立了专案,才开始做练习的。【请问】:在这两种时机里做,有差别吗?【另外】:每次练习的网站只用新建一次专案就可以,对吗(开始练习前如果已经建立了专案,网站搭建好后就不需要再新建一个,只用直接git push --all origin,是吗)?

  • 回答:
  • 恩,每一个专案,都只需要建立一次github, 之后,可以无数次的 git push
  • 先建立和后建立,没有区别,

  • github 就是保存你代码的网盘,像百度云盘一样,在百度云盘可以保存照片,

  • 在github 可以保存代码,这是云托管。

  • 你可以在百度云盘,新建一个目录夹,比如(公司照片),之后就可以无数次的,往里存储你拍的公司照片。

  • 你也可以新建一个目录夹比如(同学照片),之后,你可以无数次的往里上传照片。

  • 至于你是先拍照,然后再在网盘上新建一个文件夹,还是先新建一个文件夹,再去拍照片。都没有关系。 你是先一张一张的上传,还是一下子全部上传,也没有关系。

  • 原理一模一样。

追问:代码的“一张一张的上传”,就是每步骤都“git commit”,最后可以在github上查看到“哪步做了什么”,但如果“一下子全部上传”,那么可以看到“我更新了这些”,但是不能看到详细每步的更新。对吗?

  • 回答:不是的,
  • 一张一张的上传,是git push origin master 这个指令
  • git commit 只是在本地保存下来,就相当于你拍了照片,保存在了手机上。
  • 这时候还没有上云盘呢

  • 一张一张的上传的意思是,比如

  • 你在rails101 做了8个分支,

  • 你可以每一个分支,都git push 一次,就是上传一次

  • 也可以等到最后,一下全部push(执行git push --all origin

  • 如果后期对网站做了修改,上传时,再跑一次【git push --all origin】

Comments

comments powered by Disqus