bbgo_origin/doc/development/migration.md
2021-12-28 00:18:37 +08:00

1.5 KiB

Migration

Adding new migration

  1. The project used rockerhopper for db migration. https://github.com/c9s/rockhopper

  2. Create migration files

rockhopper --config rockhopper_sqlite.yaml create --type sql add_pnl_column
rockhopper --config rockhopper_mysql.yaml create --type sql add_pnl_column

or you can use the util script:

bash utils/generate-new-migration.sh add_pnl_column

Be sure to edit both sqlite3 and mysql migration files. ( Sample )

To test the drivers, you have to update the rockhopper_mysql.yaml file to connect your database, then do:

rockhopper --config rockhopper_sqlite.yaml up
rockhopper --config rockhopper_mysql.yaml up

Then run the following command to compile the migration files into go files:

make migrations

or

	rockhopper compile --config rockhopper_mysql.yaml --output pkg/migrations/mysql
	rockhopper compile --config rockhopper_sqlite.yaml --output pkg/migrations/sqlite3
	git add -v pkg/migrations && git commit -m "compile and update migration package" pkg/migrations || true

If you want to override the DSN and the Driver defined in the YAML config file, you can add some env vars in your dotenv file like this:

ROCKHOPPER_DRIVER=mysql
ROCKHOPPER_DIALECT=mysql
ROCKHOPPER_DSN="root:123123@unix(/opt/local/var/run/mysql57/mysqld.sock)/bbgo"

And then, run:

dotenv -f .env.local -- rockhopper --config rockhopper_mysql.yaml up