From ba36c64517fe82009c890dabfccf0cf628a2543e Mon Sep 17 00:00:00 2001 From: Qiao Han Date: Wed, 8 Mar 2023 17:07:46 +0800 Subject: [PATCH] fix: skip all migrations on pg14 --- internal/db/diff/migra.go | 8 ++++++-- internal/db/start/start.go | 8 +++----- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/internal/db/diff/migra.go b/internal/db/diff/migra.go index 6f7e8830f..a35c84b79 100644 --- a/internal/db/diff/migra.go +++ b/internal/db/diff/migra.go @@ -122,7 +122,11 @@ func likeEscapeSchema(schemas []string) (result []string) { func CreateShadowDatabase(ctx context.Context) (string, error) { config := container.Config{ Image: utils.DbImage, - Env: []string{"POSTGRES_PASSWORD=postgres"}, + Env: []string{ + "POSTGRES_PASSWORD=postgres", + "POSTGRES_HOST=/var/run/postgresql", + "POSTGRES_INITDB_ARGS=--lc-ctype=C.UTF-8", + }, } if utils.Config.Db.MajorVersion >= 14 { config.Cmd = []string{"postgres", @@ -134,7 +138,7 @@ func CreateShadowDatabase(ctx context.Context) (string, error) { hostPort := strconv.FormatUint(uint64(utils.Config.Db.ShadowPort), 10) hostConfig := container.HostConfig{ PortBindings: nat.PortMap{"5432/tcp": []nat.PortBinding{{HostPort: hostPort}}}, - Binds: []string{"/dev/null:/docker-entrypoint-initdb.d/migrate.sh:ro"}, + Tmpfs: map[string]string{"/docker-entrypoint-initdb.d": ""}, AutoRemove: true, } return utils.DockerStart(ctx, config, hostConfig, "") diff --git a/internal/db/start/start.go b/internal/db/start/start.go index e68f2639c..cf8bdf48f 100644 --- a/internal/db/start/start.go +++ b/internal/db/start/start.go @@ -45,7 +45,7 @@ func StartDatabase(ctx context.Context, fsys afero.Fs, w io.Writer, options ...f Env: []string{ "POSTGRES_PASSWORD=postgres", "POSTGRES_HOST=/var/run/postgresql", - "LC_ALL=C.UTF-8", + "POSTGRES_INITDB_ARGS=--lc-ctype=C.UTF-8", }, Healthcheck: &container.HealthConfig{ Test: []string{"CMD", "pg_isready", "-U", "postgres", "-h", "localhost", "-p", "5432"}, @@ -74,10 +74,8 @@ func StartDatabase(ctx context.Context, fsys afero.Fs, w io.Writer, options ...f hostConfig := container.HostConfig{ PortBindings: nat.PortMap{"5432/tcp": []nat.PortBinding{{HostPort: hostPort}}}, RestartPolicy: container.RestartPolicy{Name: "always"}, - Binds: []string{ - utils.DbId + ":/var/lib/postgresql/data", - "/dev/null:/docker-entrypoint-initdb.d/migrate.sh:ro", - }, + Binds: []string{utils.DbId + ":/var/lib/postgresql/data"}, + Tmpfs: map[string]string{"/docker-entrypoint-initdb.d": ""}, } fmt.Fprintln(w, "Starting database...") // Creating volume will not override existing volume, so we must inspect explicitly