在Nile平台为Waline创建数据库(含command tag CREATE SEQUENCE unhandled on command 1错误解决办法)

这里我为Waline选用的数据库是Nile平台提供的PostgreSQL,和Neon的数据库差不多,但具体的还是有一些问题的。

它们的网站:https://www.thenile.dev/。它在命令上限制的很死,但给Waline用还是莫得问题的。

创建数据库

这里我们直接选择右上角Sign up,选择Sign in with GitHub进行登录。然后根据提示创建Workspaces以及其中的数据库。

这里我数据库的地区选择的是us-west-2,其实这里的选择并不是特别的重要,反正Netlify都能访问就是了。

创建完成后,我们会进入到数据库表格页面,在这里我们就可以直接为Waline创建数据库了。

创建表和表结构

这里如果参考【Waline多数据库服务支持】中PostgreSQL的waline.pgsql进行预创建表和表结构的话,会报错command tag CREATE SEQUENCE unhandled on command 1

这里我们需要自己修改一下预创语句:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
CREATE TABLE IF NOT EXISTS wl_comment (
id SERIAL PRIMARY KEY,
user_id int DEFAULT NULL,
comment text,
insertedAt timestamp(0) without time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
ip varchar(100) DEFAULT '',
link text DEFAULT NULL,
mail text DEFAULT NULL,
nick text DEFAULT NULL,
pid int DEFAULT NULL,
rid int DEFAULT NULL,
sticky numeric DEFAULT NULL,
status varchar(50) NOT NULL DEFAULT '',
"like" int DEFAULT NULL,
ua text,
url text DEFAULT NULL,
createdAt timestamp(0) without time zone NULL DEFAULT CURRENT_TIMESTAMP,
updatedAt timestamp(0) without time zone NULL DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE IF NOT EXISTS wl_counter (
id SERIAL PRIMARY KEY,
time int DEFAULT NULL,
reaction0 int DEFAULT NULL,
reaction1 int DEFAULT NULL,
reaction2 int DEFAULT NULL,
reaction3 int DEFAULT NULL,
reaction4 int DEFAULT NULL,
reaction5 int DEFAULT NULL,
reaction6 int DEFAULT NULL,
reaction7 int DEFAULT NULL,
reaction8 int DEFAULT NULL,
url text NOT NULL DEFAULT '',
createdAt timestamp(0) without time zone NULL DEFAULT CURRENT_TIMESTAMP,
updatedAt timestamp(0) without time zone NULL DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE IF NOT EXISTS wl_users (
id SERIAL PRIMARY KEY,
display_name text NOT NULL DEFAULT '',
email text NOT NULL DEFAULT '',
password text NOT NULL DEFAULT '',
type varchar(50) NOT NULL DEFAULT '',
label text DEFAULT NULL,
url text DEFAULT NULL,
avatar text DEFAULT NULL,
github text DEFAULT NULL,
twitter text DEFAULT NULL,
facebook text DEFAULT NULL,
google text DEFAULT NULL,
weibo text DEFAULT NULL,
qq text DEFAULT NULL,
oidc text DEFAULT NULL,
huawei text DEFAULT NULL,
"2fa" varchar(32) DEFAULT NULL,
createdAt timestamp(0) without time zone NULL DEFAULT CURRENT_TIMESTAMP,
updatedAt timestamp(0) without time zone NULL DEFAULT CURRENT_TIMESTAMP
);

我们将以上语句输入并运行,最终会得到绿色提示:2 create commands successful。至此表和表结构就创建完成了。

获取数据库连接信息

为了能让Waline,我们需要获取数据库的连接信息。

在左侧列表最下方找到Settings,它是个图标,请参考参考图。在Settings页面找到Connection,选择postgres也就是那个大象头,最后点击Generate credentlals生成带用户名密码的链接。

这段链接可以以以下形式进行理解:

postgres://用户名:密码@主机:端口/数据库名