module
Version:
v0.0.0-...-6804534
Opens a new window with list of versions in this module.
Published: Jul 2, 2021
License: Apache-2.0
Opens a new window with license information.
README
ยถ
PGSEEDER
A seeder for adding and removing seeds from a Postgres database.
๐ INSTALLATION
-
Clone pgseeder repo and cd into the created folder
git clone https://github.com/gigamono/pgseeder
cd pgseeder
-
Build the binary.
go build cmd/pgseeder.go
-
Add the binary to system path and run pgseeder -h
command
๐ USAGE
CREATING SEED FILES
-
Pgseeder expects .sql
filenames to be ordered based on their dependency.
The ordering format has to be a prefix and an integer.
For example:
01_users.sql
20210702_users.sql
-
You can use Pgseeder to create a timestamped .sql
file.
pgseeder --create "users"
This generates a timestamped .sql
file similar to this: 20210620150637_users.sql
โน๏ธ Ordering allows Pgseeder to avoid foreign key constraint errors when adding or removing all seeds.
ADDING SEEDS TO THE DATABASE
-
To add seeds from a 20210620150637_users.sql
file, you run following command:
pgseeder -c "postgres://postgres@localhost:5432/resourcedb?sslmode=disable" --add users
The -c
is needed to connect to the database. It takes postgres connection string.
-
You can also run all the .sql
files in the current directory with the --add-all
flag
pgseeder -c "postgres://postgres@localhost:5432/resourcedb?sslmode=disable" --add-all
-
You can specify a directory where the .sql
files live with -d
flag
pgseeder -c "postgres://postgres@localhost:5432/resourcedb?sslmode=disable" --add-all -d "./seeds"
โน๏ธ To support removing seeds later, Pgseeder expects the .sql
filename to correspond to seeded table's name.
โ If multiple tables are seeded in a .sql
file, Pgseeder will only recognise the one that matches the filename.
REMOVING SEEDS FROM THE DATABASE
-
Here is how to remove seeds from users
table.
pgseeder -c "postgres://postgres@localhost:5432/resourcedb?sslmode=disable" --remove users
-
To remove all seeds.
pgseeder -c "postgres://postgres@localhost:5432/resourcedb?sslmode=disable" --remove-all
SEED KEYS
-
By default Pgseeder stores the id
(if there is one) of the seed which it uses later to remove it.
-
Sometimes the primary key is not id
. You can specify the primary key with -k
flag.
pgseeder -c "postgres://postgres@localhost:5432/resourcedb?sslmode=disable" --add users -k "user_id"
-
And to uniquely identify seeds using composite keys, you separate them by colons, commas or spaces.
pgseeder -c "postgres://postgres@localhost:5432/resourcedb?sslmode=disable" --add x_memberships -k "user_id, workspace_id"
๐ CURRENT LIMITATIONS
Directories
ยถ
|
|
pkg
|
|
|
|
Click to show internal directories.
Click to hide internal directories.