immigrant-generator-postgres 0.2.0

Immigrant migrations generator for postgres SQL dialect
Documentation
!!!SETUP
scalar x = sql"INTEGER";
scalar y = sql"INTEGER";
!!!TEST initialization
table Foo {
	x;
	y;
};
table Bar {
	x;
	y;
};
view Baz = sql""" 
	SELECT * FROM {Foo}
""";
view Qux = sql"""
	SELECT * FROM {Bar}
""";
!!!UPDATE field dropped from Foo, only Baz should be updated.
table Foo {
	x;
};
table Bar {
	x;
	y;
};
view Baz = sql"""
	SELECT * FROM {Foo}
""";
view Qux = sql"""
	SELECT * FROM {Bar}
""";
!!!UPDATE field dropped from Bar, only Qux should be updated.
table Foo {
	x;
};
table Bar {
	y;
};
view Baz = sql"""
	SELECT * FROM {Foo}
""";
view Qux = sql"""
	SELECT * FROM {Bar}
""";
!!!UPDATE Bar renamed to quuxes, view Qux should NOT be updated.
table Foo {
	x;
};
table Bar "quuxes" {
	y;
};
view Baz = sql"""
	SELECT * FROM {Foo}
""";
view Qux = sql"""
	SELECT * FROM {Bar}
""";
!!!RESULT
-- updated: setup --
CREATE DOMAIN x AS INTEGER;
CREATE DOMAIN y AS INTEGER;
-- updated: initialization --
CREATE TABLE foos (
	x x NOT NULL
,	y y NOT NULL
);
CREATE TABLE bars (
	x x NOT NULL
,	y y NOT NULL
);
CREATE VIEW bazs AS 
	SELECT * FROM foos
;
CREATE VIEW quxes AS
	SELECT * FROM bars
;
-- updated: field dropped from Foo, only Baz should be updated. --
ALTER VIEW bazs RENAME TO moveaway_1;
DROP VIEW moveaway_1;
ALTER TABLE foos DROP COLUMN y;
CREATE VIEW bazs AS
	SELECT * FROM foos
;
-- updated: field dropped from Bar, only Qux should be updated. --
ALTER VIEW quxes RENAME TO moveaway_1;
DROP VIEW moveaway_1;
ALTER TABLE bars DROP COLUMN x;
CREATE VIEW quxes AS
	SELECT * FROM bars
;
-- updated: Bar renamed to quuxes, view Qux should NOT be updated. --
ALTER TABLE bars RENAME TO quuxes;
-- updated: cleanup schema changes --
DROP VIEW bazs;
DROP VIEW quxes;
DROP TABLE foos;
DROP TABLE quuxes;
-- updated: cleanup setup --
DROP DOMAIN x;
DROP DOMAIN y;