Rails入门:疑难杂症~~ 无情dubug!! 上传Heroku先从资料库开始 PostgreSQL

大家好,我是Sean,一位Rails初心者,第一次发文请大大们手下留情XD

受一位朋友RS启发,决定转职後端工程师,目标网全端前进

爬文後,发现一位老师Rails教很好,而且有yt视频,可以搜寻RailsFun.tw 新手教学,而我临摹新手教学2.5,建立商城可User注册还有Manager後台管理

成功後想上传Heroku却发生一些问题,这也是发文原因,希望能减少其他人dug时间

将介绍Postgres资料库三个自己遇到的问题及解决方法

首先安装PostgreSQL,这边跳过安装步骤,是否安装成功 psql – V 或是先查路径 locate bin/postgres,再输入一串刚刚路径/postgres - V

本文开始,可以参考网站部署(使用 Heroku),网站提到Heroku 预设支援 PostgreSQL,若用mysql会发生问题一

Mysql2::Error: Can't connect to MySQL server

解决方法,改为PostgreSQL

  • 修改 Gemfile
  • 修改 config/database.yml
    如图1
    https://ithelp.ithome.com.tw/upload/images/20201019/20126905TJcitOMy61.png
    左边mysql,右边PostgreSQL,帐密都PostgreSQL

当登入PostgreSQL时问题二

psql: FATAL: password authentication failed for user "postgres"

解决方法 sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'postgres';"

原因之一密码没设定,另个原因可能是问题三
来源stackoverflow
帐密都PostgreSQL,跟database.yml一致就好

修改後,当时我在本地run rails db:migrate,发生问题三

fatal: peer authentication failed for user

解决方法,修改 Database administrative 下列中的peer改为trust

指令sudo nano /etc/postgresql/10/main/pg_hba.conf,这指令因人而异,看你postgresql版本,楼上提到locate bin/postgres可以看到版本

范例如下
local all postgres peer
// change to
local all postgres trust

改成trust或md5 ,#peer(不可信),trust(可信),md5(加密)

记得systemctl status postgresql.service重启看成不成功,安装成功 psql – Vsudo -i -u postgres(帐号),再psql – V,後续指令跳过了

最终结果如下,终於阿,正所谓无情dubug..
https://ithelp.ithome.com.tw/upload/images/20201019/20126905dx5jqlo7gy.png

以上修改後,git commit,再一次push,若是push不成功,我的经验是git Heroku重新一次,把全部复制到另一至资料夹,再 git remote addHeroku login等等

以上主要是PostgreSQL发生的问题,希望有帮助大家,接下来下一篇介绍是Zeitwerk::NameError如何解决


<<:  Day34. 范例:歌曲排行(迭代器模式)

>>:  Day31 - JS30 - 16 - Mouse Move Shadow

【没钱买ps,PyQt自己写】Day 26 - project / 替我们影片播放器增加一个显示进度的滑条 video player add slider (与昨日 bottleneck 处理细节)

看完这篇文章你会得到的成果图 多了一条滑条,我们可以直接控制,另外我们也可以直接透过滑条来操控进度 ...

D5-用 Swift 和公开资讯,打造投资理财的 Apps { 实作 上市/上柜/兴柜 所有资料的列表 }

写到第五天,开始写 UI 罗~~ 前面都是在做资料处理,所以只有程序码,没有 UI 画面,谢谢看到今...

字串和物件的差异

今天会用两个例子来比较看看多个字串和一个物件多笔资料有什麽不同 第一个范例是在data中放「首页」、...

占位符文字太多超过显示范围

缘由: 今天一样讲画面布局的部分,开发时常常会使用到让使用者填入资料的textfield,但常常为了...

30天学会C语言: Day 15-奇怪的资料型态

C语言中还有另外两种类似 struct 的指令 union 和 struct 一样可以由多个不同型别...