From 3e4bfc6abf2d3251091fdf7273225fe9c38a3b3f Mon Sep 17 00:00:00 2001 From: Robert Lechte Date: Sun, 20 Jan 2019 08:25:52 +1100 Subject: [PATCH] replace functions and views where possible --- migra/migra.py | 3 +-- pyproject.toml | 2 +- tests/FIXTURES/dependencies/expected.sql | 20 ++++++------------- tests/FIXTURES/dependencies/expected2.sql | 24 ++++++++--------------- tests/FIXTURES/dependencies2/expected.sql | 6 +++--- tests/FIXTURES/everything/expected.sql | 8 +++----- tests/FIXTURES/everything/expected2.sql | 8 +++----- tests/FIXTURES/privileges/expected.sql | 2 +- tests/FIXTURES/privileges/expected2.sql | 2 +- tests/FIXTURES/singleschema/expected.sql | 4 +--- tests/test_migra.py | 2 +- 11 files changed, 29 insertions(+), 52 deletions(-) diff --git a/migra/migra.py b/migra/migra.py index 68e20ef..ac04acb 100644 --- a/migra/migra.py +++ b/migra/migra.py @@ -1,8 +1,7 @@ from __future__ import unicode_literals -from sqlbag import raw_execute - from schemainspect import DBInspector, get_inspector +from sqlbag import raw_execute from .changes import Changes from .statements import Statements diff --git a/pyproject.toml b/pyproject.toml index 891c0dc..ad7a5d8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -13,7 +13,7 @@ homepage = "https://migra.djrobstep.com/" python = "*" sqlbag = "*" six = "*" -schemainspect = "== 0.1.1547549341" +schemainspect = ">= 0.1.1547903959" psycopg2-binary = { version="*", optional = true } [tool.poetry.dev-dependencies] diff --git a/tests/FIXTURES/dependencies/expected.sql b/tests/FIXTURES/dependencies/expected.sql index b803bb6..07fc1cc 100644 --- a/tests/FIXTURES/dependencies/expected.sql +++ b/tests/FIXTURES/dependencies/expected.sql @@ -1,19 +1,11 @@ -drop view if exists "public"."ccc_view3" cascade; +drop view if exists "public"."ccc_view3"; -drop function if exists "public"."depends_on_bbb_view2"(t text) cascade; +drop function if exists "public"."depends_on_bbb_view2"(t text); -drop view if exists "public"."ddd_unchanged" cascade; +drop view if exists "public"."bbb_view2"; -drop view if exists "public"."bbb_view2" cascade; +drop view if exists "public"."aaa_view1"; -drop view if exists "public"."ddd_changed" cascade; - -drop view if exists "public"."aaa_view1" cascade; - -create view "public"."ddd_changed" as SELECT basetable.name, +create or replace view "public"."ddd_changed" as SELECT basetable.name, 'x'::text AS x - FROM basetable; - - -create view "public"."ddd_unchanged" as SELECT ddd_changed.name - FROM ddd_changed; + FROM basetable; \ No newline at end of file diff --git a/tests/FIXTURES/dependencies/expected2.sql b/tests/FIXTURES/dependencies/expected2.sql index db58d29..57f685e 100644 --- a/tests/FIXTURES/dependencies/expected2.sql +++ b/tests/FIXTURES/dependencies/expected2.sql @@ -1,25 +1,17 @@ -drop view if exists "public"."ccc_view3" cascade; +drop view if exists "public"."ccc_view3"; -drop view if exists "public"."ddd" cascade; +drop view if exists "public"."ddd"; -drop function if exists "public"."depends_on_bbb_view2"(t text) cascade; +drop function if exists "public"."depends_on_bbb_view2"(t text); -drop view if exists "public"."eee" cascade; +drop view if exists "public"."eee"; -drop function if exists "public"."fff"(t text) cascade; +drop function if exists "public"."fff"(t text); -drop view if exists "public"."ddd_unchanged" cascade; +drop view if exists "public"."bbb_view2"; -drop view if exists "public"."bbb_view2" cascade; +drop view if exists "public"."aaa_view1"; -drop view if exists "public"."ddd_changed" cascade; - -drop view if exists "public"."aaa_view1" cascade; - -create view "public"."ddd_changed" as SELECT basetable.name, +create or replace view "public"."ddd_changed" as SELECT basetable.name, 'x'::text AS x FROM basetable; - - -create view "public"."ddd_unchanged" as SELECT ddd_changed.name - FROM ddd_changed; diff --git a/tests/FIXTURES/dependencies2/expected.sql b/tests/FIXTURES/dependencies2/expected.sql index 3dfb1ab..b89614f 100644 --- a/tests/FIXTURES/dependencies2/expected.sql +++ b/tests/FIXTURES/dependencies2/expected.sql @@ -1,4 +1,4 @@ -drop view if exists "x"."q" cascade; +drop view if exists "x"."q"; drop table "x"."data"; @@ -8,11 +8,11 @@ create table "x"."t_data" ( ); -create view "x"."data" as SELECT t_data.id, +create or replace view "x"."data" as SELECT t_data.id, t_data.name FROM x.t_data; -create view "x"."q" as SELECT data.id, +create or replace view "x"."q" as SELECT data.id, data.name FROM x.data; diff --git a/tests/FIXTURES/everything/expected.sql b/tests/FIXTURES/everything/expected.sql index 30a7580..0e8b18b 100644 --- a/tests/FIXTURES/everything/expected.sql +++ b/tests/FIXTURES/everything/expected.sql @@ -36,11 +36,9 @@ drop index if exists "public"."products_x_idx"; drop index if exists "public"."products_x_key"; -drop function if exists "public"."changed"(i integer, t text[]) cascade; +drop materialized view if exists "public"."matvvv"; -drop materialized view if exists "public"."matvvv" cascade; - -drop view if exists "public"."vvv" cascade; +drop view if exists "public"."vvv"; drop table "public"."aunwanted"; @@ -139,7 +137,7 @@ $function$ create materialized view "public"."matvvv" as SELECT 2; -create view "public"."vvv" as SELECT 2; +create or replace view "public"."vvv" as SELECT 2; drop sequence if exists "public"."aunwanted_id_seq"; diff --git a/tests/FIXTURES/everything/expected2.sql b/tests/FIXTURES/everything/expected2.sql index 30a1ba6..45bb12c 100644 --- a/tests/FIXTURES/everything/expected2.sql +++ b/tests/FIXTURES/everything/expected2.sql @@ -36,11 +36,9 @@ drop index if exists "public"."products_x_idx"; drop index if exists "public"."products_x_key"; -drop function if exists "public"."changed"(i integer, t text[]) cascade; +drop materialized view if exists "public"."matvvv"; -drop materialized view if exists "public"."matvvv" cascade; - -drop view if exists "public"."vvv" cascade; +drop view if exists "public"."vvv"; drop table "public"."aunwanted"; @@ -135,7 +133,7 @@ $function$ create materialized view "public"."matvvv" as SELECT 2; -create view "public"."vvv" as SELECT 2; +create or replace view "public"."vvv" as SELECT 2; drop sequence if exists "public"."aunwanted_id_seq"; diff --git a/tests/FIXTURES/privileges/expected.sql b/tests/FIXTURES/privileges/expected.sql index e63bc77..81fcc98 100644 --- a/tests/FIXTURES/privileges/expected.sql +++ b/tests/FIXTURES/privileges/expected.sql @@ -1,5 +1,5 @@ revoke select on table "public"."any_table" from postgres; -drop view if exists "public"."any_other_view" cascade; +drop view if exists "public"."any_other_view"; grant update on table "public"."any_table" to postgres; diff --git a/tests/FIXTURES/privileges/expected2.sql b/tests/FIXTURES/privileges/expected2.sql index a5cf38a..a8ad320 100644 --- a/tests/FIXTURES/privileges/expected2.sql +++ b/tests/FIXTURES/privileges/expected2.sql @@ -1,5 +1,5 @@ revoke delete on table "public"."any_table" from postgres; -drop view if exists "public"."any_other_view" cascade; +drop view if exists "public"."any_other_view"; grant update on table "public"."any_table" to postgres; diff --git a/tests/FIXTURES/singleschema/expected.sql b/tests/FIXTURES/singleschema/expected.sql index 4679fa8..f36afc8 100644 --- a/tests/FIXTURES/singleschema/expected.sql +++ b/tests/FIXTURES/singleschema/expected.sql @@ -1,11 +1,9 @@ drop index if exists "goodschema"."t_id_idx"; -drop view if exists "goodschema"."v" cascade; - drop type "goodschema"."sdfasdfasdf"; create type "goodschema"."sdfasdfasdf" as enum ('not shipped', 'shipped', 'delivered', 'not delivered'); alter table "goodschema"."t" add column "name" text; -create view "goodschema"."v" as SELECT 2; +create or replace view "goodschema"."v" as SELECT 2; diff --git a/tests/test_migra.py b/tests/test_migra.py index 2def7ca..9b87764 100644 --- a/tests/test_migra.py +++ b/tests/test_migra.py @@ -3,11 +3,11 @@ from __future__ import unicode_literals import io from pytest import raises +from schemainspect import get_inspector from sqlbag import S, load_sql_from_file, temporary_database from migra import Migration, Statements, UnsafeMigrationException from migra.command import parse_args, run -from schemainspect import get_inspector SQL = """select 1;