use Test::More;
use Test::SQL::Translator;
use Test::Exception;
+use Test::Differences;
use Data::Dumper;
use SQL::Translator;
use SQL::Translator::Schema::Constants;
my $sqlt;
$sqlt = SQL::Translator->new(
no_comments => 1,
- show_warnings => 1,
+ show_warnings => 0,
add_drop_table => 1,
);
filename => $xmlfile,
) or die $sqlt->error;
-is($sql, << "SQL");
-DROP TABLE "Basic";
+eq_or_diff($sql, << "SQL");
+DROP TABLE "Basic" CASCADE;
CREATE TABLE "Basic" (
"id" serial NOT NULL,
"title" character varying(100) DEFAULT 'hello' NOT NULL,
"description" text DEFAULT '',
- "email" character varying(255),
+ "email" character varying(500),
"explicitnulldef" character varying,
"explicitemptystring" character varying DEFAULT '',
-- Hello emptytagdef
"emptytagdef" character varying DEFAULT '',
+ "another_id" integer DEFAULT 2,
+ "timest" timestamp,
PRIMARY KEY ("id"),
- Constraint "emailuniqueindex" UNIQUE ("email")
+ CONSTRAINT "emailuniqueindex" UNIQUE ("email"),
+ CONSTRAINT "very_long_index_name_on_title_field_which_should_be_truncated_for_various_rdbms" UNIQUE ("title")
);
CREATE INDEX "titleindex" on "Basic" ("title");
+
+DROP TABLE "Another" CASCADE;
+CREATE TABLE "Another" (
+ "id" serial NOT NULL,
+ "num" numeric(10,2),
+ PRIMARY KEY ("id")
+);
+
+DROP VIEW "email_list";
+CREATE VIEW "email_list" ( "email" ) AS
+ SELECT email FROM Basic WHERE (email IS NOT NULL)
+;
+
+DROP TRIGGER IF EXISTS "foo_trigger";
+
+CREATE TRIGGER "foo_trigger" after insert ON "Basic" update modified=timestamp();;
+
+DROP TRIGGER IF EXISTS "bar_trigger";
+
+CREATE TRIGGER "bar_trigger" before insert OR update ON "Basic" update modified2=timestamp();;
+
+ALTER TABLE "Basic" ADD FOREIGN KEY ("another_id")
+ REFERENCES "Another" ("id") DEFERRABLE;
+
SQL