fixing typos
[mir.git] / dbscripts / create_pg.sql
index 620353e..4070d46 100755 (executable)
-\connect - postgres
-CREATE SEQUENCE "media_id_seq" start 1 increment 1 maxvalue 2147483647 minvalue 1  cache 1 ;
-SELECT nextval ('"media_id_seq"');
+--
+-- media_folder
+--
+
 CREATE SEQUENCE "media_folder_id_seq" start 1 increment 1 maxvalue 2147483647 minvalue 1  cache 1 ;
-SELECT nextval ('"media_folder_id_seq"');
-CREATE SEQUENCE "creator_id_seq" start 1 increment 1 maxvalue 2147483647 minvalue 1  cache 1 ;
-SELECT nextval ('"creator_id_seq"');
-CREATE SEQUENCE "feature_id_seq" start 1 increment 1 maxvalue 2147483647 minvalue 1  cache 1 ;
-SELECT nextval ('"feature_id_seq"');
-CREATE SEQUENCE "topic_id_seq" start 1 increment 1 maxvalue 2147483647 minvalue 1  cache 1 ;
-SELECT nextval ('"topic_id_seq"');
-CREATE SEQUENCE "webdb_users_id_seq" start 1 increment 1 maxvalue 2147483647 minvalue 1  cache 1 ;
-SELECT nextval ('"webdb_users_id_seq"');
-CREATE SEQUENCE "comment_id_seq" start 1 increment 1 maxvalue 2147483647 minvalue 1  cache 1 ;
-SELECT nextval ('"comment_id_seq"');
-CREATE SEQUENCE "breaking_id_seq" start 1 increment 1 maxvalue 2147483647 minvalue 1  cache 1 ;
-SELECT nextval ('"breaking_id_seq"');
-CREATE SEQUENCE "messages_id_seq" start 1 increment 1 maxvalue 2147483647 minvalue 1  cache 1 ;
-SELECT nextval ('"messages_id_seq"');
+
 CREATE TABLE "media_folder" (
-       "id" int4 DEFAULT nextval('media_folder_id_seq'::text) NOT NULL,
+       "id" integer DEFAULT nextval('media_folder_id_seq'::text) NOT NULL,
        "name" character varying(255) NOT NULL,
        "date" character(8) NOT NULL,
        "place" character varying(80),
        "keywords" text,
        "comment" text,
-       "webdb_create" timestamp NOT NULL,
-       "webdb_lastchange" timestamp
+       "webdb_create" timestamp with time zone NOT NULL,
+       "webdb_lastchange" timestamp with time zone
 );
+
+--
+-- media_type
+--
+
+CREATE SEQUENCE "media_type_id_seq" start 1 increment 1 maxvalue 2147483647 minvalue 1  cache 1 ;
+
 CREATE TABLE "media_type" (
-       "id" int2 NOT NULL,
+       "id" integer DEFAULT nextval('media_type_id_seq'::text) NOT NULL,
        "name" character varying(80) NOT NULL,
+       "mime_type" character varying(40) NOT NULL,
        "classname" character varying(80) NOT NULL,
        "tablename" character varying(80) NOT NULL,
        "dcname" character varying(20)
 );
-CREATE TABLE "img_format" (
-       "id" int2 NOT NULL,
-       "name" character varying(20) NOT NULL,
-       "extension" character varying(10) NOT NULL,
-       "mimetype" character varying(40) NOT NULL,
-       "commment" character varying(255)
-);
-CREATE TABLE "img_layout" (
-       "id" int2 NOT NULL,
-       "name" character varying(20) NOT NULL
-);
-CREATE TABLE "img_type" (
-       "id" int2 NOT NULL,
-       "name" character varying(30) NOT NULL
-);
-CREATE TABLE "img_color" (
-       "id" int2 NOT NULL,
-       "name" character varying(30) NOT NULL
-);
+
+--
+-- language
+--
+
+CREATE SEQUENCE "language_id_seq" start 1 increment 1 maxvalue 2147483647 minvalue 1 cache 1 ;
+
 CREATE TABLE "language" (
-       "id" int4 NOT NULL,
-       "name" character varying(40) NOT NULL,
-       "code" character varying(2) NOT NULL,
-       PRIMARY KEY ("id")
+       "id" integer DEFAULT nextval('language_id_seq') NOT NULL,
+  "name" character varying(40) NOT NULL,
+  "code" character varying(2) NOT NULL,
+  Constraint "language_pkey" Primary Key ("id")
 );
-CREATE TABLE "rights" (
-       "id" int4 NOT NULL,
-       "name" character varying(80) NOT NULL,
-       "description" text,
-       PRIMARY KEY ("id")
+
+--
+-- comment_status
+--
+
+CREATE SEQUENCE "comment_status_id_seq" start 1 increment 1 maxvalue 2147483647 minvalue 1 cache 1 ;
+
+CREATE TABLE "comment_status" (
+  "id" integer DEFAULT nextval('comment_status_id_seq') NOT NULL,
+  "name" character varying(40) NOT NULL,
+  CONSTRAINT "comment_status_pkey" PRIMARY KEY ("id")
 );
-CREATE TABLE "creator" (
-       "id" int4 DEFAULT nextval('creator_id_seq'::text) NOT NULL,
+
+
+
+--
+-- rights
+--
+
+CREATE TABLE "rights" (
+       "id" integer NOT NULL,
        "name" character varying(80) NOT NULL,
-       "main_url" character varying(255),
-       "email" character varying(80),
-       "address" character varying(80),
-       "phone" character varying(20),
-       PRIMARY KEY ("id")
-);
-CREATE TABLE "feature" (
-       "id" int4 DEFAULT nextval('feature_id_seq'::text) NOT NULL,
-       "title" character varying(80) NOT NULL,
        "description" text,
-       "filename" character varying(20) NOT NULL,
-       "main_url" character varying(255),
-       "is_published" bool DEFAULT '0' NOT NULL,
-       PRIMARY KEY ("id")
+       Constraint "rights_pkey" Primary Key ("id")
 );
+
+--
+-- webdb_users
+--
+
+CREATE SEQUENCE "webdb_users_id_seq" start 1 increment 1 maxvalue 2147483647 minvalue 1  cache 1 ;
+
 CREATE TABLE "webdb_users" (
-       "id" int4 DEFAULT nextval('webdb_users_id_seq'::text) NOT NULL,
-       "login" character varying(16) NOT NULL,
-       "password" character varying(16) NOT NULL,
-       "is_admin" bool DEFAULT '0' NOT NULL,
-       PRIMARY KEY ("id")
-);
-CREATE TABLE "content_x_topic" (
-       "content_id" int4 NOT NULL,
-       "topic_id" int4 NOT NULL
+       "id" integer DEFAULT nextval('webdb_users_id_seq'::text) NOT NULL,
+       "login" character varying(16) UNIQUE NOT NULL,
+       "password" character varying(255) NOT NULL,
+       "is_admin" boolean DEFAULT '0' NOT NULL,
+       "comment" text,
+       "is_disabled" boolean DEFAULT '0' NOT NULL,
+       "email" character varying(255) DEFAULT '' NOT NULL,
+       "profile" text,
+       "webdb_create"  timestamp with time zone NOT NULL,
+       "lastlogin"  timestamp with time zone,
+       CONSTRAINT "webdb_users_pkey" Primary Key ("id")
 );
+
+
+--
+-- article type
+--
+
+CREATE SEQUENCE "article_type_id_seq" start 1 increment 1 maxvalue 2147483647 minvalue 1 cache 1 ;
+
 CREATE TABLE "article_type" (
-       "id" int4 NOT NULL,
-       "name" character varying(20) NOT NULL
+       "id" integer DEFAULT nextval('article_type_id_seq') NOT NULL,
+       "name" character varying(40) NOT NULL,
+       CONSTRAINT "article_type_pkey" PRIMARY KEY ("id")
 );
+
+--
+-- topic
+--
+
+CREATE SEQUENCE "topic_id_seq" start 1 increment 1 maxvalue 2147483647 minvalue 1  cache 1 ;
+
 CREATE TABLE "topic" (
-       "id" int4 DEFAULT nextval('topic_id_seq'::text) NOT NULL,
-       "parent_id" int4 DEFAULT '0' NOT NULL,
+       "id" integer DEFAULT nextval('topic_id_seq'::text) NOT NULL,
+       "parent_id" integer DEFAULT '0' NOT NULL,
        "title" character varying(80) NOT NULL,
        "description" text,
        "filename" character varying(20) NOT NULL,
        "main_url" character varying(255),
        "archiv_url" character varying(255),
-       PRIMARY KEY ("id")
+       Constraint "topic_pkey" Primary Key ("id")
+);
+
+CREATE        INDEX "idx_topic_title" on "topic"           using btree ( "title" "varchar_ops" );
+
+
+-- 
+-- content_x_topics
+--
+
+CREATE TABLE "content_x_topic" (
+       "content_id" integer NOT NULL,
+       "topic_id" integer NOT NULL
 );
+
+CREATE UNIQUE INDEX "idx_content"     on "content_x_topic" using btree ( "content_id" "int4_ops", "topic_id" "int4_ops" );
+CREATE UNIQUE INDEX "idx_topic"       on "content_x_topic" using btree ( "topic_id" "int4_ops", "content_id" "int4_ops" );
+
+--
+-- comment
+--
+
+CREATE SEQUENCE "comment_id_seq" start 1 increment 1 maxvalue 2147483647 minvalue 1  cache 1 ;
 CREATE TABLE "comment" (
-       "id" int4 DEFAULT nextval('comment_id_seq'::text) NOT NULL,
-       "title" character varying(80) NOT NULL,
-       "creator" character varying(80) NOT NULL,
-       "description" text NOT NULL,
-       "main_url" character varying(255),
-       "email" character varying(80),
-       "address" character varying(80),
-       "phone" character varying(20),
-       "webdb_create" timestamp NOT NULL,
-       "is_published" bool DEFAULT '1' NOT NULL,
-       "to_language" int4 DEFAULT '0' NOT NULL,
-       "to_media" int4 NOT NULL,
-       PRIMARY KEY ("id")
-);
-CREATE TABLE "media" (
-       "id" int4 DEFAULT nextval('media_id_seq'::text) NOT NULL,
-       "title" character varying(80) NOT NULL,
-       "subtitle" character varying(30),
-       "edittitle" character varying(30),
+  "id" integer DEFAULT nextval('comment_id_seq'::text) NOT NULL,
+  "title" character varying(80) NOT NULL,
+  "creator" character varying(80) NOT NULL,
+  "description" text NOT NULL,
+  "main_url" character varying(255),
+  "email" character varying(80),
+  "address" character varying(80),
+  "phone" character varying(20),
+  "webdb_create" timestamp with time zone NOT NULL,
+  "webdb_lastchange" timestamp with time zone,
+  "is_published" boolean DEFAULT '1' NOT NULL,
+  "to_language" integer DEFAULT '0' NOT NULL,
+  "to_media" integer NOT NULL,
+  "to_comment_status" smallint,
+       "comment" text,
+  "is_html" boolean DEFAULT '0' NOT NULL,
+  Constraint "comment_pkey" Primary Key ("id")
+);
+
+CREATE        INDEX "idx_comment_to_media" on "comment" using btree ( "to_media" "int4_ops" );
+CREATE        INDEX idx_comment_webdb_create on comment(webdb_create);
+CREATE        INDEX "idx_comment_tomedia_ispublished" on "comment" using btree ( "to_media" "int4_ops", "is_published" "bool_ops" );
+
+
+
+      CREATE TABLE "comment_x_media" (
+         "comment_id" integer,
+         "media_id" integer
+      );
+      
+      CREATE UNIQUE INDEX idx_comment_media on comment_x_media (comment_id, media_id);
+      CREATE UNIQUE INDEX idx_media_comment on comment_x_media (media_id, comment_id);
+
+
+--
+-- media
+--
+
+CREATE SEQUENCE "media_id_seq" start 1 increment 1 maxvalue 2147483647 minvalue 1  cache 1 ;
+
+--
+-- uploaded_media
+--
+
+CREATE TABLE "uploaded_media" (
+       "id" integer DEFAULT nextval('media_id_seq'::text) NOT NULL,
+       "title" character varying(255),
+       "subtitle" character varying(255),
+       "edittitle" character varying(255),
        "date" character(8) NOT NULL,
-       "place" character varying(80),
        "creator" character varying(80),
        "creator_main_url" character varying(255),
        "creator_email" character varying(80),
        "creator_address" character varying(80),
        "creator_phone" character varying(20),
        "description" text,
-       "keywords" text,
        "comment" text,
        "source" character varying(255),
-       "publish_date" timestamp,
        "publish_server" character varying(255),
        "publish_path" character varying(255),
-       "is_published" bool DEFAULT '0' NOT NULL,
-       "to_feature" int4 DEFAULT '0' NOT NULL,
-       "to_media_folder" int4 DEFAULT '0' NOT NULL,
-       "to_media_type" int2 DEFAULT '0' NOT NULL,
-       "to_creator" int4 DEFAULT '0' NOT NULL,
-       "to_publisher" int4 NOT NULL,
-       "to_language" int4 DEFAULT '0',
-       "to_rights" int4 DEFAULT '0',
-       "webdb_create" timestamp NOT NULL,
-       "webdb_lastchange" timestamp,
-       "to_media" int4
+       "is_published" boolean DEFAULT '0' NOT NULL,
+       "is_produced" boolean DEFAULT '0' NOT NULL,
+       "to_media_folder" integer DEFAULT '0' NOT NULL,
+       "to_media_type" smallint DEFAULT '0' NOT NULL,
+       "to_publisher" integer NOT NULL,
+       "to_language" integer DEFAULT '0',
+       "to_rights" integer DEFAULT '0',
+       "webdb_create" timestamp with time zone NOT NULL,
+       "webdb_lastchange" timestamp with time zone,
+       "icon_is_produced" boolean DEFAULT '0' NOT NULL,
+       "icon_path" character varying(255),
+       "size" integer,
+       Constraint "uploaded_media_pkey" Primary Key ("id")
 );
+
+CREATE UNIQUE INDEX "idx_uploaded_media_id" on "uploaded_media" using btree ( "id" "int4_ops" );
+CREATE UNIQUE INDEX "idx_uploaded_media_is_published" on "uploaded_media" using btree ( "id" "int4_ops", "is_published" "bool_ops" );
+
+--
+-- images
+--
+
 CREATE TABLE "images" (
-       "image_data" oid,
-       "icon_data" oid,
-       "icon_path" character varying(255),
-       "icon_is_produced" bool DEFAULT '0' NOT NULL,
+       "image_data" bytea,
+       "icon_data" bytea,
        "year" character varying(40),
-       "img_width" int2,
-       "img_height" int2,
-       "to_img_format" int2 DEFAULT '0' NOT NULL,
-       "to_img_layout" int2 DEFAULT '0' NOT NULL,
-       "to_img_type" int2 DEFAULT '0' NOT NULL,
-       "to_img_color" int2 DEFAULT '0' NOT NULL,
-       "icon_width" int2,
-       "icon_height" int2
+       "img_width" smallint,
+       "img_height" smallint,
+       "to_img_format" smallint DEFAULT '0' NOT NULL,
+       "to_img_layout" smallint DEFAULT '0' NOT NULL,
+       "to_img_type" smallint DEFAULT '0' NOT NULL,
+       "to_img_color" smallint DEFAULT '0' NOT NULL,
+       "icon_width" smallint,
+       "icon_height" smallint
+)
+INHERITS ("uploaded_media");
+
+CREATE        INDEX "idx_images_is_published" on "images" using btree ( "is_published" "bool_ops", "icon_is_produced" "bool_ops" );
+CREATE UNIQUE INDEX "idx_images_id" on "images" using btree ( "id" "int4_ops" );
+
+        --
+        -- img_format
+        --
+        
+        CREATE TABLE "img_format" (
+          "id" smallint NOT NULL,
+          "name" character varying(20) NOT NULL,
+          "extension" character varying(10) NOT NULL,
+          "mimetype" character varying(40) NOT NULL,
+          "commment" character varying(255)
+        );
+        
+        --
+        -- img_layout
+        --
+        
+        CREATE TABLE "img_layout" (
+          "id" smallint NOT NULL,
+          "name" character varying(20) NOT NULL
+        );
+        
+        --
+        -- img_type
+        --
+        
+        CREATE TABLE "img_type" (
+          "id" smallint NOT NULL,
+          "name" character varying(30) NOT NULL
+        );
+        
+        --
+        -- img_color
+        --
+        
+        CREATE TABLE "img_color" (
+          "id" smallint NOT NULL,
+          "name" character varying(30) NOT NULL
+        );
+
+        
+--
+-- audio
+--
+
+CREATE TABLE "audio" (
+  "kbits" smallint
+)
+INHERITS ("uploaded_media");
+
+CREATE        INDEX "idx_audio_is_published_produced" on "audio" using btree ( "is_published" "bool_ops", "is_produced" "bool_ops" );
+CREATE UNIQUE INDEX "idx_audio_id" on "audio" using btree ( "id" "int4_ops" );
+
+--
+-- video
+--
+
+CREATE TABLE "video" (
 )
-inherits ("media");
+INHERITS ("uploaded_media");
+
+CREATE        INDEX "idx_video_is_published_produced" on "video" using btree ( "is_published" "bool_ops", "is_produced" "bool_ops" );
+CREATE UNIQUE INDEX "idx_video_id" on "video" using btree ( "id" "int4_ops" );
+
+--
+-- other_media
+--
+
+CREATE TABLE "other_media" (
+)
+INHERITS ("uploaded_media");
+
+CREATE        INDEX "idx_othermedia_is_published_produced" on "other_media" using btree ( "is_published" "bool_ops", "is_produced" "bool_ops" );
+CREATE UNIQUE INDEX "idx_othermedia_id" on "other_media" using btree ( "id" "int4_ops" );
+
+--
+-- content
+--
+
 CREATE TABLE "content" (
+       "id" integer DEFAULT nextval('media_id_seq'::text) NOT NULL,
+       "title" character varying(255),
+       "subtitle" character varying(255),
+       "edittitle" character varying(255),
+       "date" character(8) NOT NULL,
+       "creator" character varying(80),
+       "creator_main_url" character varying(255),
+       "creator_email" character varying(80),
+       "creator_address" character varying(80),
+       "creator_phone" character varying(80),
+       "description" text,
+       "comment" text,
+       "source" character varying(255),
+       "is_published" boolean DEFAULT '0' NOT NULL,
+       "is_produced" boolean DEFAULT '0' NOT NULL,
+       "to_publisher" integer NOT NULL,
+       "to_language" integer DEFAULT '0',
+       "to_rights" integer DEFAULT '0',
+       "webdb_create" timestamp with time zone NOT NULL,
+       "webdb_lastchange" timestamp with time zone,
        "content_data" text,
-       "link_url" character varying(255),
-       "date_from" character varying(8),
-       "date_to" character varying(8),
-       "date_name" character varying(255),
-       "is_html" bool DEFAULT '0' NOT NULL,
-       "is_produced" bool DEFAULT '0' NOT NULL,
-       "is_stored" bool DEFAULT '0' NOT NULL,
-       "is_mail_sent" bool DEFAULT '1' NOT NULL,
-       "is_digest_sent" bool DEFAULT '1' NOT NULL,
-       "to_article_type" int2 DEFAULT '0' NOT NULL
-)
-inherits ("media");
+       "is_html" boolean DEFAULT '0' NOT NULL,
+       "to_article_type" smallint DEFAULT '0' NOT NULL,
+       "to_content" integer,
+       "keywords" text,
+       "to_locking_user" integer,
+  Constraint "content_pkey" Primary Key ("id")
+);
+
+
+CREATE        INDEX "idx_content_to_article_type" on "content" using btree ( "to_article_type" "int2_ops" );
+CREATE        INDEX "idx_content_is_produced" on "content" using btree ( "is_produced" "bool_ops" );
+CREATE        INDEX "idx_content_is_published__to_ar" on "content" using btree ( "is_published" "bool_ops", "to_article_type" "int2_ops" );
+CREATE        INDEX "idx_content_is_published__id" on "content" using btree ( "is_published" "bool_ops", "id" "int4_ops" );
+CREATE        INDEX "idx_content_is_pub__to_art__to_" on "content" using btree ( "is_published" "bool_ops", "to_article_type" "int2_ops", "id" "int4_ops" );
+CREATE        INDEX "idx_content_is_published" on "content" using btree ( "is_published" "bool_ops" );
+CREATE        INDEX idx_content_webdb_create on content(webdb_create);
+
+
+    -- content_x_media
+
+    CREATE TABLE "content_x_media" (
+      "content_id" integer,
+      "media_id" integer
+    );
+
+    CREATE INDEX "idx_cxm_content" on "content_x_media" using btree ( "content_id" "int4_ops" );
+    CREATE INDEX "idx_cxm_media" on "content_x_media" using btree ( "media_id" "int4_ops" );
+
+--
+-- breaking
+--
+
+CREATE SEQUENCE "breaking_id_seq" start 1 increment 1 maxvalue 2147483647 minvalue 1  cache 1 ;
+
 CREATE TABLE "breaking" (
-       "id" int4 DEFAULT nextval('breaking_id_seq'::text) NOT NULL,
-       "text" character varying(255) NOT NULL,
-       "webdb_create" timestamp NOT NULL
+  "id" integer DEFAULT nextval('breaking_id_seq'::text) NOT NULL,
+  "text" character varying(255) NOT NULL,
+  "webdb_create" timestamp with time zone NOT NULL
 );
+
+--
+-- messages
+--
+
+CREATE SEQUENCE "messages_id_seq" start 1 increment 1 maxvalue 2147483647 minvalue 1  cache 1 ;
+
 CREATE TABLE "messages" (
-       "id" int4 DEFAULT nextval('messages_id_seq'::text) NOT NULL,
-       "title" character varying(30),
-       "description" character varying(255) NOT NULL,
-       "creator" character varying(30) NOT NULL,
-       "webdb_create" timestamp NOT NULL
-);
-CREATE TABLE "videos" (
-       "video_data" oid,
-       "to_video_type" int2 DEFAULT '0' NOT NULL
-)
-inherits ("media");
-CREATE FUNCTION "plpgsql_call_handler" ( ) RETURNS opaque AS '/usr/lib/postgresql/lib/plpgsql.so' LANGUAGE 'C';
-CREATE TRUSTED PROCEDURAL LANGUAGE 'plpgsql' HANDLER "plpgsql_call_handler" LANCOMPILER 'PL/pgSQL';
-CREATE  INDEX "idx_comment_to_media" on "comment" using btree ( "to_media" "int4_ops" );
-CREATE  INDEX "idx_content_to_article_type" on "content" using btree ( "to_article_type" "int2_ops" );
-CREATE  INDEX "idx_content_is_produced" on "content" using btree ( "is_produced" "bool_ops" );
-CREATE  INDEX "idx_content_is_published__to_ar" on "content" using btree ( "is_published" "bool_ops", "to_article_type" "int2_ops" );
-CREATE  INDEX "idx_webdb_user_log_pas_is_admin" on "webdb_users" using btree ( "login" "varchar_ops", "password" "varchar_ops", "is_admin" "bool_ops" );
-CREATE  INDEX "idx_content_is_stored" on "content" using btree ( "is_stored" "bool_ops" );
-CREATE  INDEX "idx_content_is_published__id" on "content" using btree ( "is_published" "bool_ops", "id" "int4_ops" );
-CREATE UNIQUE INDEX "idx_content" on "content_x_topic" using btree ( "content_id" "int4_ops", "topic_id" "int4_ops" );
-CREATE  INDEX "idx_webdb_user_log_pas" on "webdb_users" using btree ( "login" "varchar_ops", "password" "varchar_ops" );
-CREATE UNIQUE INDEX "idx_topic" on "content_x_topic" using btree ( "topic_id" "int4_ops", "content_id" "int4_ops" );
-CREATE  INDEX "idx_topic_title" on "topic" using btree ( "title" "varchar_ops" );
-CREATE  INDEX "idx_images_is_published__icon_i" on "images" using btree ( "is_published" "bool_ops", "icon_is_produced" "bool_ops" );
-CREATE  INDEX "idx_content_is_pub__to_art__to_" on "content" using btree ( "is_published" "bool_ops", "to_article_type" "int2_ops", "id" "int4_ops" );
-CREATE UNIQUE INDEX "idx_images_id" on "images" using btree ( "id" "int4_ops" );
-CREATE UNIQUE INDEX "idx_content_id" on "content" using btree ( "id" "int4_ops" );
-CREATE UNIQUE INDEX "idx_topic_id" on "topic" using btree ( "id" "int4_ops" );
+  "id" integer DEFAULT nextval('messages_id_seq'::text) NOT NULL,
+  "title" character varying(30),
+  "description" character varying(255) NOT NULL,
+  "creator" character varying(30) NOT NULL,
+  "webdb_create" timestamp with time zone NOT NULL
+);
+
+
+--
+-- filter
+--
+
+CREATE SEQUENCE "filter_id_seq" start 1 increment 1 maxvalue 2147483647 minvalue 1  cache 1 ;
+
+CREATE TABLE "filter" (
+  "id" integer DEFAULT nextval('filter_id_seq'::text) NOT NULL,
+  "priority" integer,
+  "filter_group_id" integer,
+  "type" character varying(255) NOT NULL,
+  "expression" character varying(255) NOT NULL,
+  "tag" character varying(255) NOT NULL,
+       "comment" text,
+  "articleaction" character varying(255) NOT NULL,
+  "commentaction" character varying(255) NOT NULL,
+       "last_hit" timestamp with time zone
+);
+
+--
+-- filter_group
+--
+
+CREATE SEQUENCE "filter_group_id_seq" start 1 increment 1 maxvalue 2147483647 minvalue 1  cache 1 ;
+
+CREATE TABLE "filter_group" (
+  "id" integer DEFAULT nextval('filter_group_id_seq'::text) NOT NULL,
+  "name" character varying(255),
+  "priority" integer
+);
+
+--
+-- db_patches
+--
+
+CREATE SEQUENCE "db_patches_id_seq" start 1 increment 1 maxvalue 2147483647 minvalue 1  cache 1 ;
+
+CREATE TABLE "db_patches" (
+  "id" integer DEFAULT nextval('db_patches_id_seq'::text) NOT NULL,
+  "date" date NOT NULL,
+  "description" text
+);
+
+--
+-- model_version
+--
+
+CREATE TABLE "model_version" (
+  "description"  character varying(24)
+);
+