Skip to content

Commit c0435fe

Browse files
feat: fix repeat to create casbin_sequence for PostgreSQL (#60)
1 parent ab66263 commit c0435fe

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

src/main/java/org/casbin/adapter/JDBCBaseAdapter.java

+8-1
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,14 @@ protected void migrate() throws SQLException {
127127
sql = renderActualSql("IF NOT EXISTS (SELECT * FROM sysobjects WHERE name='casbin_rule' and xtype='U') CREATE TABLE casbin_rule(id int NOT NULL primary key identity(1, 1), ptype VARCHAR(100) NOT NULL, v0 VARCHAR(100), v1 VARCHAR(100), v2 VARCHAR(100), v3 VARCHAR(100), v4 VARCHAR(100), v5 VARCHAR(100))");
128128
break;
129129
case "PostgreSQL":
130-
sql = renderActualSql("CREATE SEQUENCE IF NOT EXISTS CASBIN_SEQUENCE START 1;");
130+
sql = renderActualSql("do $$ " +
131+
"BEGIN " +
132+
"IF (select count(*) from information_schema.tables where table_name = 'casbin_rule') = 0 " +
133+
"THEN " +
134+
"CREATE SEQUENCE IF NOT EXISTS CASBIN_SEQUENCE START 1; "+
135+
"END IF; " +
136+
"END; " +
137+
"$$;");
131138
break;
132139
case "H2":
133140
sql = renderActualSql("CREATE TABLE IF NOT EXISTS casbin_rule(id int GENERATED ALWAYS AS IDENTITY PRIMARY KEY, ptype VARCHAR(100) NOT NULL, v0 VARCHAR(100), v1 VARCHAR(100), v2 VARCHAR(100), v3 VARCHAR(100), v4 VARCHAR(100), v5 VARCHAR(100))");

0 commit comments

Comments
 (0)