Ruslan Getmansky 0e9ca96965 PW-193: Society role,
Adding lost column in u_users table for Society
2016-03-30 11:20:47 +03:00
2016-03-30 11:20:47 +03:00
2016-02-17 12:22:22 +01:00

Database migration

Detailed information about this

Setup

Configuration

The credentials for each environment that could be updated is stored in the env/ directory.

Example

env/default.conf could look like this:

#!/bin/bash
export PSQL_OPTS="-h HOST_NAME -U USER_NAME"
export DB_NAME=DATABASE_NAME

Create one file for each environment you'd be able to migrate.

When db-upgrade is issued, it takes the first part of any name as argument and performs the migration on selected environment.

$ ./db-upgrade localhost would for example find a file named localhost.conf and use the credentials inside for the migration.

To avoid having to enter password for selected user on each run, just use a .pgpass file.

db-upgrade assumes the default environment should be used if it's argument is omitted. So, start by creating an initial default.conf with credentials for your localhost or some non-critical environment.

Migration files

The files in the /migrations directory are changes to the scheme, not the full scheme.

The naming convention for migration files are:

  • 000.000.sql
  • 000.001.sql
  • 000.002.sql
  • 000.003.sql
  • 000.004.sql
  • ...and so on

Example The first file, migrations/000.000.sql may look like this:

create table users (
  name varchar(32) not null,
  primary key (name)
);

The second file, migrations/000.001.sql may look like this:

alter table users
add email varchar(256) not null;

To do the actual migration, then just run:

# ./db-upgrade [ENVIRONMENT NAME]
S
Description
No description provided
Readme
1.6 MiB
Languages
PLpgSQL 97.7%
Shell 2.3%