Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

支持 PostgreSQL 数据库 #31

Closed
rts-gordon opened this issue Apr 21, 2020 · 18 comments · Fixed by #33
Closed

支持 PostgreSQL 数据库 #31

rts-gordon opened this issue Apr 21, 2020 · 18 comments · Fixed by #33
Assignees
Milestone

Comments

@rts-gordon
Copy link
Contributor

Pipe会支持PostgreSQL数据库吗?修改也简单,1、加载postgresql driver;2、修改gorm type mediumtext为text;3、去掉SQL语句的中的``。

@88250
Copy link
Owner

88250 commented Apr 21, 2020

暂时没有这个计划,如果需要请自行 fork 修改,感谢反馈。

@88250 88250 closed this as completed Apr 21, 2020
@88250 88250 reopened this Apr 22, 2020
@88250 88250 changed the title Pipe会支持PostgreSQL数据库吗? 支持 PostgreSQL 数据库 Apr 22, 2020
@88250 88250 self-assigned this Apr 22, 2020
@88250 88250 added this to the 2.1.0 milestone Apr 22, 2020
@88250 88250 linked a pull request Apr 22, 2020 that will close this issue
@88250
Copy link
Owner

88250 commented Apr 22, 2020

感谢 PR #33

@88250 88250 closed this as completed Apr 22, 2020
@88250 88250 reopened this Apr 22, 2020
@88250
Copy link
Owner

88250 commented Apr 22, 2020

@Chcp 我测试了一下 MySQL,有报错哦:

image

@88250
Copy link
Owner

88250 commented Apr 22, 2020

看来是因为用了 INT1 这个作为字段名了,MySQL 里是个保留字 😂 看来还是只能吧 ` 加回去,有啥建议不?

@rts-gordon
Copy link
Contributor Author

INT1是MySQL的数据类型吗?我查询了一下,好像没有这种数据类型。
PostgreSQL因为不支持``定义,所以我把它去掉了,在SQLite上测试通过的。但我确实没有在MySQL上测试过,因为平时不用。
如果仅仅是因为INT1命名导致的,如果以后计划pipe master版本支持PG,我建议是否可以改一个不跟MySQL数据类型冲突的名称?

@88250
Copy link
Owner

88250 commented Apr 22, 2020

INT1 是 MySQL 保留字。

改字段名已经来不及了……

Where 子句我正在用 GORM 的结构体支持重写,似乎奏效。

88250 added a commit that referenced this issue Apr 22, 2020
@rts-gordon
Copy link
Contributor Author

Good luck

@88250
Copy link
Owner

88250 commented Apr 22, 2020

改完后还需你那里帮忙测试下 PostgreSQL 是否兼容,谢谢。

@rts-gordon
Copy link
Contributor Author

好的,没问题。我会使用新的代码测试的。

@88250
Copy link
Owner

88250 commented Apr 22, 2020

我这里提交完了,麻烦在 postgres 分支上进行测试。

@rts-gordon
Copy link
Contributor Author

rts-gordon commented Apr 22, 2020

Hi @88250
测试环境:本地代码编译执行,PostgreSQL版本为9.6。
由于对系统功能不慎了解,只能进行如下测试,应该有没有覆盖到的地方:
1、增加文章,修改文章,删除文章;
2、对文章进行评论,对评论进行回复,删除评论;
3、设置ShowSQL=true,未发现有SQL执行错误。

发现的缺陷如下:
1、[sessions] ERROR! securecookie: the value is not valid。这个错误貌似跟gorm无关。
2、增加一条评论,会出现多条记录;几率不少,有时出现两条记录,有时出现四条记录。
3、增加评论时,会跳到管理界面;

@88250
Copy link
Owner

88250 commented Apr 22, 2020

  1. 这个不用管,是正常现象
  2. 我这在 MySQL 上没重现,浏览器端 F12 看下请求发了几条,是不是发重了?后端好像没有做控制
  3. 强制刷新页面再评论试试

@rts-gordon
Copy link
Contributor Author

又测试了下,在点击评论按钮是,都返回到了start页面,只能重新开始使用。形成循环了,无法进行评论。是与我本机环境有关?与SQL好像关系不大。

@88250
Copy link
Owner

88250 commented Apr 23, 2020

登录后在文章页面强制刷新一下再点评论按钮,有可能是缓存问题。

@rts-gordon
Copy link
Contributor Author

image
按照你的建议,在文章界面刷新界面,再执行评论,是在同一时间下发了多条创建评论的命令,随机的,1-n条都有可能,所以应该是前端的问题。

@88250
Copy link
Owner

88250 commented Apr 23, 2020

这个问题如果比较严重可以单独开 issue 我们再讨论看看 😅
PostgreSQL 没问题就行了,我关闭了,感谢帮忙,稍后我合并到主干。

@88250 88250 closed this as completed Apr 23, 2020
88250 added a commit that referenced this issue Apr 23, 2020
@rts-gordon
Copy link
Contributor Author

rts-gordon commented Apr 29, 2020

@88250 请问一个问题,当初移植到PostgreSQL时,直接使用text字段来保存文章内容。虽然容量上绝对是够的(text支持1G长度),但如果频繁修改文章内容,查询和保存都是传输的整个文章内容吗?这样会不会影响性能?如果文章很长,分为多个章节和多个数据库字段来查询和保存是不是性能会更好?仅仅一个设计建议。

@88250
Copy link
Owner

88250 commented Apr 29, 2020

操作的是全文内容,文章最大长度应该校验过了,问题不大。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants