.. | ||
test-migrations | ||
go.mod | ||
go.sum | ||
migrate_test.go | ||
migrate.go | ||
README.md | ||
tx.go |
sqliteutil
Transactions
Simplify postgres transactions using WithTx
for serializable transactions,
or WithTxDefault
for the default isolation level. Use the SerialTxRunner
type to get automatic retries of serialization errors.
Migrations
Put your migrations into a directory, for example migrations
, ordered by name
(YYYY-MM-DD prefix, for example). Embed the directory and pass it to the
Migrate
function:
//go:embed migrations
var migrations embed.FS
func init() {
Migrate(db, migrations) // Check the error, of course.
}
Testing
In order to test this packge, we need to create a test user and database:
sudo su postgres
psql
CREATE DATABASE test;
CREATE USER test WITH ENCRYPTED PASSWORD 'test';
GRANT ALL PRIVILEGES ON DATABASE test TO test;
use test
GRANT ALL ON SCHEMA public TO test;
Check that you can connect via the command line:
psql -h 127.0.0.1 -U test --password test