Skip to content
This repository has been archived by the owner on Apr 6, 2021. It is now read-only.

sudo make migrate-up fails in pq/notify.go #117

Open
douglaslamb opened this issue Jul 17, 2020 · 4 comments
Open

sudo make migrate-up fails in pq/notify.go #117

douglaslamb opened this issue Jul 17, 2020 · 4 comments

Comments

@douglaslamb
Copy link

douglaslamb commented Jul 17, 2020

I am getting the following error when I run sudo make migrate-up. Thank you for writing Watson. It's great.

Debian 10.4 buster
Docker 19.03.12
Digital Ocean

Sincerely

~/crick/api$ sudo make migrate-up
docker-compose -p crick -f docker-compose.yml -f docker-compose.tools.yml run --rm migrate up
Starting crick_db_1 ... done
Building migrate
Step 1/5 : FROM golang:1.8-alpine
 ---> 4cb86d3661bf
Step 2/5 : MAINTAINER William Durand <[email protected]>
 ---> Using cache
 ---> 1cc1cfda2218
Step 3/5 : RUN apk update &&     apk add git &&     rm -r /var/cache/apk/*
 ---> Using cache
 ---> 1c3a71dbd35e
Step 4/5 : RUN go get -u -d github.com/mattes/migrate/cli                  github.com/lib/pq
 ---> Using cache
 ---> d207113a1f92
Step 5/5 : RUN go build -tags 'postgres' -o /usr/local/bin/migrate github.com/mattes/migrate/cli
 ---> Running in 085db9bd1dfb
# github.com/lib/pq`
src/github.com/lib/pq/notify.go:47: undefined: driver.Connector
ERROR: Service 'migrate' failed to build: The command '/bin/sh -c go build -tags 'postgres' -o /usr/local/bin/migrate github.com/mattes/migrate/cli' returned a non-zero code: 2
make: *** [Makefile:16: migrate-up] Error 1
~/crick/api$
@jmaupetit
Copy link
Member

🤔 maybe the database service wasn't up? Have you tried to looks at the db service logs?

@douglaslamb
Copy link
Author

douglaslamb commented Jul 17, 2020 via email

@douglaslamb
Copy link
Author

I think the database started up ok. I pasted the db container's log below.

My best guess is that in crick/api/migrations/Dockerfile, using github.com/mattes/migrate (which is deprecated) instead of github.com/golang-migrate/migrate is the problem. However, I tried changing mattes to golang-migrate, and it didn't work. I pasted my terminal output for that below.

Thanks for your help!

~/crick/api$ make migrate-up
docker-compose -p crick -f docker-compose.yml -f docker-compose.tools.yml run --rm migrate up
Starting crick_db_1 ... done
Building migrate
Step 1/5 : FROM golang:1.8-alpine
 ---> 4cb86d3661bf
Step 2/5 : MAINTAINER William Durand <[email protected]>
 ---> Using cache
 ---> 1cc1cfda2218
Step 3/5 : RUN apk update &&     apk add git &&     rm -r /var/cache/apk/*
 ---> Using cache
 ---> 1c3a71dbd35e
Step 4/5 : RUN go get -u -d github.com/golang-migrate/migrate/cli                  github.com/lib/pq
 ---> Running in 7bfac82f22bb
package github.com/golang-migrate/migrate/v4/internal/cli: cannot find package "github.com/golang-migrate/migrate/v4/internal/cli" in any of:
        /usr/local/go/src/github.com/golang-migrate/migrate/v4/internal/cli (from $GOROOT)
        /go/src/github.com/golang-migrate/migrate/v4/internal/cli (from $GOPATH)
ERROR: Service 'migrate' failed to build: The command '/bin/sh -c go get -u -d github.com/golang-migrate/migrate/cli                  github.com/lib/pq' returned a non-zero code: 1
make: *** [Makefile:16: migrate-up] Error 1
~/crick/api$
~/crick/api$ docker logs crick_db_1
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.

The database cluster will be initialized with locale "en_US.utf8".
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "english".

Data page checksums are disabled.

fixing permissions on existing directory /var/lib/postgresql/data ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting default timezone ... UTC
selecting dynamic shared memory implementation ... posix
creating configuration files ... ok
running bootstrap script ... ok
sh: locale: not found
performing post-bootstrap initialization ... No usable system locales were found.
Use the option "--debug" to see details.
ok
syncing data to disk ... ok

WARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the option -A, or
--auth-local and --auth-host, the next time you run initdb.

Success. You can now start the database server using:

    pg_ctl -D /var/lib/postgresql/data -l logfile start

waiting for server to start....LOG:  database system was shut down at 2020-07-18 01:59:50 UTC
LOG:  MultiXact member wraparound protections are now enabled
LOG:  database system is ready to accept connections
LOG:  autovacuum launcher started
 done
server started
CREATE DATABASE


/usr/local/bin/docker-entrypoint.sh: ignoring /docker-entrypoint-initdb.d/*

LOG:  received fast shutdown request
LOG:  aborting any active transactions
LOG:  autovacuum launcher shutting down
LOG:  shutting down
waiting for server to shut down....LOG:  database system is shut down
 done
server stopped

PostgreSQL init process complete; ready for start up.

LOG:  database system was shut down at 2020-07-18 01:59:51 UTC
LOG:  MultiXact member wraparound protections are now enabled
LOG:  database system is ready to accept connections
LOG:  autovacuum launcher started
~/crick/api$

@wieland-s
Copy link

@douglaslamb It seems like I found a solution: update the golang image e.g. to 1.15-alpine (Edit the first line of api/migrations/Dockerfile). After this the make command is successful.

Due other Failures I can't test if this work properly on the whole project.

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

No branches or pull requests

3 participants