Comments (3)
For future visitors to this issue.
I thought I had the issue mentioned here, since I was getting the same error on an initial migration. However, in my case, the underlying issue wasn't quoting -- the issue was that dbmate
sometimes used the schema_migrations
table without a schema (i.e. public.schema_migrations
), and sometimes with an explicit schema. Notably, it tried to create the table without a schema, but then insert a row into the table with a schema. Obviously, this insert failed with the error relation "<schema>.schema_migrations" does not exist
.
I fixed this by setting DBMATE_MIGRATIONS_TABLE
to include the schema <schema>.schema_migrations
explicitly. After that, the table was created in the correct schema, and inserts occurred to the same table as well.
from dbmate.
Thanks for raising this issue, @fouadkada and @sgielen.
Considering our current tests pass, I'd like to try and figure out what is different about how Postgres is configured in your environments vs. the one our tests run against.
Our tests are currently run against PostgreSQL 10.21, with all default settings based on the official Docker image for postgres:10
:
root@c2a4e68d4451:/src# PGPASSWORD=postgres psql -h postgres -U postgres -tc "select version();"
PostgreSQL 10.21 (Debian 10.21-1.pgdg90+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516, 64-bit
I wonder if it's a matter of the postgres
user's default search_path
vs. the search_path
that's set for the user or database that you're connecting to?
dbmate_test=# show search_path;
search_path
-----------------
"$user", public
(1 row)
dbmate_test=# \dn
List of schemas
Name | Owner
--------+----------
public | postgres
(1 row)
Per the documentation on search path: "The first schema in the search path that exists is the default location for creating new objects." In our case in the dbmate test database, the only schema that exists is public
so that's the default schema where objects (tables, indexes, etc.) will be created and found.
I'd like help coming up with a reproducible test that fails with the current dbmate, that we can then use as a guiderail to test all possible solutions and also ensure we don't regress this in the future as it's not easily understood, given the number of ways this particular code has been implemented in dbmate over time.
What is different about your environments that triggers this error, that the current dbmate test suite's environment and test cases do not trip over?
from dbmate.
I also suspect this issue is related to #429 as well.
from dbmate.
Related Issues (20)
- `dbmate down` on 2.0.0 will only roll back the newest migration
- Separating `schema_migration` from the search_path HOT 4
- Dbmate Unable to Create SchemaMigrations Table HOT 6
- Postgres Schemas with special characters have DBMate create migration tables then cannot find it again
- ClickHouse Cloud https connection doesn't work HOT 2
- Getting pq: syntax error at or near "transaction" when running migration with transaction:false HOT 7
- The migration lock is not released after terminating the migration HOT 2
- Comments (on columns) that include line breaks are never created. HOT 1
- dbmate requires each migration to define a down block with '-- migrate:down' when it defined HOT 5
- No Zookeeper configuration in server config
- Support all DSN variants for clickhouse DATABASE_URL HOT 8
- Wait for Postgres to be ready HOT 3
- $PGHOST & $PGPORT are not respected. HOT 2
- Add a section to the README documenting how environment variables are used by dbmate
- Table aliases don't work with ClickHouse HOT 2
- Add `--wait-interval` and `$DBMATE_WAIT_INTERVAL` to make wait interval configurable at runtime HOT 7
- The latest release is missing all the binaries HOT 2
- Could not open extension control file "/share/extension/http.control" HOT 2
- Embedded FS on Windows HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dbmate.