示例#1
0
 public function test_drop_table()
 {
     $dbVc = new Db();
     $dbVc->setMaster(new DbConn($this->conf['devel']));
     $dbVc->setSlave(new DbConn($this->conf['devel2']));
     $diff = $dbVc->raw('public');
     $this->assertCount(1, $diff);
     $this->assertCount(1, $diff[0]['diff']);
     $this->assertEquals("DROP TABLE public.testtable;", trim($diff[0]['diff'][0]));
 }
示例#2
0
 public function test_new_sequence()
 {
     $dbVc = new Db();
     $dbVc->setMaster(new DbConn($this->conf['devel']));
     $dbVc->setSlave(new DbConn($this->conf['devel2']));
     $diff = $dbVc->raw('public');
     $this->assertCount(1, $diff);
     $this->assertCount(1, $diff[0]['diff']);
     $this->assertEquals("DROP SEQUENCE public.mysecuence;", $diff[0]['diff'][0]);
 }
示例#3
0
 public function test_function()
 {
     $dbVc = new Db();
     $dbVc->setMaster(new DbConn($this->conf['devel']));
     $dbVc->setSlave(new DbConn($this->conf['devel2']));
     $diff = $dbVc->raw('public');
     $this->assertCount(1, $diff);
     $this->assertCount(1, $diff[0]['diff']);
     $expected = "\n            CREATE OR REPLACE FUNCTION public.hello(name character varying) RETURNS character varying\n            LANGUAGE plpgsql AS \$function\$\n            BEGIN\n                RETURN 'Hello ' || name;\n            END;\n            \$function\$\n        ";
     $this->assertEquals(StringParser::trimLines($expected), StringParser::trimLines($diff[0]['diff'][0]));
 }
示例#4
0
 public function test_new_sequence()
 {
     $dbVc = new Db();
     $dbVc->setMaster(new DbConn($this->conf['devel']));
     $dbVc->setSlave(new DbConn($this->conf['devel2']));
     $diff = $dbVc->raw('public');
     $this->assertCount(1, $diff);
     $this->assertCount(1, $diff[0]['diff']);
     $expected = "\n            CREATE SEQUENCE public.mysecuence\n              INCREMENT 1\n              MINVALUE 1\n              MAXVALUE 9223372036854775807\n              START 342;";
     $this->assertEquals(StringParser::trimLines($expected), StringParser::trimLines($diff[0]['diff'][0]));
 }
 public function test_function()
 {
     $dbVc = new Db();
     $dbVc->setMaster(new DbConn($this->conf['devel']));
     $dbVc->setSlave(new DbConn($this->conf['devel2']));
     $diff = $dbVc->raw('public');
     $this->assertCount(1, $diff);
     $this->assertCount(1, $diff[0]['diff']);
     $expected = "DROP FUNCTION public.hello(varchar);";
     $this->assertEquals(StringParser::trimLines($expected), StringParser::trimLines($diff[0]['diff'][0]));
 }
 public function test_constraints()
 {
     $dbVc = new Db();
     $dbVc->setMaster(new DbConn($this->conf['devel']));
     $dbVc->setSlave(new DbConn($this->conf['devel2']));
     $diff = $dbVc->raw('public');
     $this->assertCount(1, $diff);
     $this->assertCount(1, $diff[0]['diff']);
     $expected = "\n        CREATE TABLE public.products(\n          \"product_no_unique\" integer,\n          \"name\" text,\n          \"price\" numeric,\n          CONSTRAINT products_product_no_unique_key UNIQUE (\"product_no_unique\")\n        );";
     $this->assertEquals(StringParser::trimLines($expected), StringParser::trimLines($diff[0]['diff'][0]));
 }
示例#7
0
 public function test_table_with_different_colums_databases()
 {
     $dbVc = new Db();
     $dbVc->setMaster(new DbConn($this->conf['devel']));
     $dbVc->setSlave(new DbConn($this->conf['devel2']));
     $diff = $dbVc->raw('public');
     $this->assertCount(1, $diff);
     $this->assertCount(2, $diff[0]['diff']);
     $this->assertEquals("ALTER TABLE public.testtable ADD \"name\" character varying;", $diff[0]['diff'][0]);
     $this->assertEquals("ALTER TABLE public.testtable DROP COLUMN \"name2\"", $diff[0]['diff'][1]);
 }
示例#8
0
 public function test_foreing_keys()
 {
     $dbVc = new Db();
     $dbVc->setMaster(new DbConn($this->conf['devel']));
     $dbVc->setSlave(new DbConn($this->conf['devel2']));
     $diff = $dbVc->raw('public');
     $this->assertCount(1, $diff);
     $this->assertCount(1, $diff[0]['diff']);
     $expected = "ALTER TABLE public.weather ADD CONSTRAINT \"weather_city_fkey\" FOREIGN KEY (\"city\") REFERENCES public.cities (city) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION;";
     $this->assertEquals(StringParser::trimLines($expected), StringParser::trimLines($diff[0]['diff'][0]));
 }
 public function test_table_column_with_different_type()
 {
     $dbVc = new Db();
     $dbVc->setMaster(new DbConn($this->conf['devel']));
     $dbVc->setSlave(new DbConn($this->conf['devel2']));
     $diff = $dbVc->raw('public');
     $this->assertCount(1, $diff);
     $this->assertCount(1, $diff[0]['diff']);
     $expected = "ALTER TABLE public.testtable ALTER \"name\" TYPE numeric;";
     $this->assertEquals($expected, trim($diff[0]['diff'][0]));
 }
示例#10
0
 public function test_drop_constraints()
 {
     $dbVc = new Db();
     $dbVc->setMaster(new DbConn($this->conf['devel']));
     $dbVc->setSlave(new DbConn($this->conf['devel2']));
     $diff = $dbVc->raw('public');
     $this->assertCount(1, $diff);
     $this->assertCount(1, $diff[0]['diff']);
     $expected = "ALTER TABLE public.products DROP CONSTRAINT \"products_price_check\" CASCADE;";
     $this->assertEquals(StringParser::trimLines($expected), StringParser::trimLines($diff[0]['diff'][0]));
 }
示例#11
0
 public function test_constraints()
 {
     $dbVc = new Db();
     $dbVc->setMaster(new DbConn($this->conf['devel']));
     $dbVc->setSlave(new DbConn($this->conf['devel2']));
     $diff = $dbVc->raw('public');
     $this->assertCount(1, $diff);
     $this->assertCount(1, $diff[0]['diff']);
     $expected = "\n        CREATE TABLE public.products( \"product_no\" numeric(3, 0),\n        \"name\" text,\n        \"price\" numeric(3, 0),\n        CONSTRAINT products_price_check CHECK (price > (0)::numeric) );";
     $this->assertEquals(StringParser::trimLines($expected), StringParser::trimLines($diff[0]['diff'][0]));
 }
示例#12
0
 public function test_new_view()
 {
     $dbVc = new Db();
     $dbVc->setMaster(new DbConn($this->conf['devel']));
     $dbVc->setSlave(new DbConn($this->conf['devel2']));
     $diff = $dbVc->raw('public');
     $this->assertCount(1, $diff);
     $this->assertCount(2, $diff[0]['diff']);
     $expected = "\n            DROP VIEW public.myview;";
     $this->assertEquals(StringParser::trimLines($expected), StringParser::trimLines($diff[0]['diff'][0]));
 }
 public function test_table_with_different_colums_databases()
 {
     $dbVc = new Db();
     $dbVc->setMaster(new DbConn($this->conf['devel']));
     $dbVc->setSlave(new DbConn($this->conf['devel2']));
     $diff = $dbVc->raw('public');
     $this->assertCount(1, $diff);
     $this->assertCount(1, $diff[0]['diff']);
     $expected = "CREATE TABLE public.testtable(\n             \"userid\" character varying NOT NULL,\n             \"id\" numeric,\n             CONSTRAINT testtable_pkey PRIMARY KEY (\"userid\")\n            );\n        ";
     $this->assertEquals(StringParser::trimLines($expected), StringParser::trimLines($diff[0]['diff'][0]));
 }
示例#14
0
 public function test_new_table()
 {
     $dbVc = new Db();
     $dbVc->setMaster(new DbConn($this->conf['devel']));
     $dbVc->setSlave(new DbConn($this->conf['devel2']));
     $diff = $dbVc->raw('public');
     $this->assertCount(1, $diff);
     $this->assertCount(1, $diff[0]['diff']);
     $expected = "\n            CREATE TABLE public.testtable(\n             \"userid\" character varying NOT NULL,\n             \"password\" character varying NOT NULL,\n             \"myid\" numeric,\n             \"surname\" character varying,\n             CONSTRAINT testtable_pkey PRIMARY KEY (\"userid\")\n        );";
     $this->assertEquals(StringParser::trimLines($expected), StringParser::trimLines($diff[0]['diff'][0]));
 }
示例#15
0
 public function test_new_view()
 {
     $dbVc = new Db();
     $dbVc->setMaster(new DbConn($this->conf['devel']));
     $dbVc->setSlave(new DbConn($this->conf['devel2']));
     $diff = $dbVc->raw('public');
     $this->assertCount(1, $diff);
     $this->assertCount(2, $diff[0]['diff']);
     $expected = "\n            CREATE OR REPLACE VIEW public.myview AS\n               SELECT testtable.userid,\n                testtable.password,\n                testtable.name,\n                testtable.surname\n               FROM testtable\n              WHERE ((testtable.surname)::text = 'x'::text);";
     $this->assertEquals(StringParser::trimLines($expected), StringParser::trimLines($diff[0]['diff'][0]));
 }