Cascade drop pg tables to overcome key constraints when dropping
Jess Robinson [Mon, 20 Nov 2006 23:56:14 +0000 (23:56 +0000)]
lib/SQL/Translator/Producer/PostgreSQL.pm
t/46xml-to-pg.t
t/49xml-to-pg-samefield.t

index eb12613..10976e8 100644 (file)
@@ -1,7 +1,7 @@
 package SQL::Translator::Producer::PostgreSQL;
 
 # -------------------------------------------------------------------
-# $Id: PostgreSQL.pm,v 1.27 2006-11-10 21:21:51 mwz444 Exp $
+# $Id: PostgreSQL.pm,v 1.28 2006-11-20 23:56:14 schiffbruechige Exp $
 # -------------------------------------------------------------------
 # Copyright (C) 2002-4 SQLFairy Authors
 #
@@ -39,7 +39,7 @@ producer.
 use strict;
 use warnings;
 use vars qw[ $DEBUG $WARN $VERSION ];
-$VERSION = sprintf "%d.%02d", q$Revision: 1.27 $ =~ /(\d+)\.(\d+)/;
+$VERSION = sprintf "%d.%02d", q$Revision: 1.28 $ =~ /(\d+)\.(\d+)/;
 $DEBUG = 1 unless defined $DEBUG;
 
 use SQL::Translator::Schema::Constants;
@@ -377,7 +377,7 @@ sub create_table
 
     my $create_statement;
     $create_statement = join("\n", @comments);
-    $create_statement .= qq[DROP TABLE $qt$table_name_ur$qt;\n] 
+    $create_statement .= qq[DROP TABLE $qt$table_name_ur$qt CASCADE;\n] 
         if $add_drop_table;
     $create_statement .= qq[CREATE TABLE $qt$table_name_ur$qt (\n].
                             join( ",\n", map { "  $_" } @field_defs, @constraint_defs ).
index de42837..0fd269c 100644 (file)
@@ -33,7 +33,7 @@ my $sql = $sqlt->translate(
 ) or die $sqlt->error;
 
 is($sql, << "SQL");
-DROP TABLE "Basic";
+DROP TABLE "Basic" CASCADE;
 CREATE TABLE "Basic" (
   "id" serial NOT NULL,
   "title" character varying(100) DEFAULT 'hello' NOT NULL,
@@ -51,7 +51,7 @@ CREATE TABLE "Basic" (
 CREATE INDEX "titleindex" on "Basic" ("title");
 
 
-DROP TABLE "Another";
+DROP TABLE "Another" CASCADE;
 CREATE TABLE "Another" (
   "id" serial NOT NULL,
   PRIMARY KEY ("id")
index 4fb029d..4ec2644 100644 (file)
@@ -33,14 +33,14 @@ my $sql = $sqlt->translate(
 ) or die $sqlt->error;
 
 is($sql, << "SQL");
-DROP TABLE "one";
+DROP TABLE "one" CASCADE;
 CREATE TABLE "one" (
   "same" character varying(100) DEFAULT 'hello' NOT NULL
 );
 
 
 
-DROP TABLE "two";
+DROP TABLE "two" CASCADE;
 CREATE TABLE "two" (
   "same" character varying(100) DEFAULT 'hello' NOT NULL
 );