go-rel / rel

:gem: Modern ORM for Golang - Testable, Extendable and Crafted Into a Clean and Elegant API

Home Page:https://go-rel.github.io/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Error: Sqlite primary key syntax error

fairking opened this issue · comments

commented

Packages:
github.com/go-rel/rel@v0.41.0
github.com/go-rel/migration@v0.3.1
github.com/go-rel/sqlite3@v0.11.0
github.com/mattn/go-sqlite3@v1.14.19

Example:

	schema.CreateTable("settings", func(t *rel.Table) {
		t.String("id", rel.Required(true), rel.Limit(16))
		t.String("key", rel.Required(true), rel.Limit(50))
		t.String("value")
		t.DateTime("created_at", rel.Required(true))
		t.DateTime("updated_at", rel.Required(true))

		t.PrimaryKey("id", rel.Name("pk_settings"))
		t.Unique([]string{"key"}, rel.Name("uq_settings_key"))
	})

Error:

Instrumentation: adapter-exec, INSERT INTO "rel_schema_versions" ("version","created_at","updated_at") VALUES (?,?,?);, [[202402011000 2024-02-01 02:23:55 +0100 CET 2024-02-01 02:23:55 +0100 CET]]
Instrumentation: adapter-exec, CREATE TABLE "settings" ("id" VARCHAR(16) NOT NULL, "key" VARCHAR(50) NOT NULL, "value" VARCHAR(255), "created_at" DATETIME NOT NULL, "updated_at" DATETIME NOT NULL, PRIMARY KEY "pk_settings" ("id"), UNIQUE "uq_settings_key" ("key"));, [[]]
Instrumentation: adapter-rollback, rollback transaction, [[]]
panic: near ""pk_settings"": syntax error

goroutine 56 [running]:
github.com/go-rel/migration.check({0x7ff7489cd3a0, 0xc000091830})
        /go/pkg/mod/github.com/go-rel/migration@v0.3.1/migration.go:176 +0x5d
github.com/go-rel/migration.(*Migration).Migrate(0xc00005c140, {0x7ff7489d1b98, 0xc000437fb0})
        /go/pkg/mod/github.com/go-rel/migration@v0.3.1/migration.go:127 +0x30e

The right syntax would be:

CREATE TABLE "settings" (
	"id"	VARCHAR(16) NOT NULL,
        "key" VARCHAR(50) NOT NULL,
	CONSTRAINT "pk_settings" PRIMARY KEY ("id"),
        CONSTRAINT "uq_settings_key" UNIQUE ("key")
);