You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ode.apache.org by mr...@apache.org on 2006/11/03 01:59:29 UTC

svn commit: r470621 - in /incubator/ode/trunk/dao-hibernate-db-derby: build.xml src/main/sql/ode.postgres.properties src/main/sql/ode.sqlserver.properties src/main/sql/tables_postgres.sql src/main/sql/tables_sqlserver.sql

Author: mriou
Date: Thu Nov  2 16:59:29 2006
New Revision: 470621

URL: http://svn.apache.org/viewvc?view=rev&rev=470621
Log:
Generating DB scripts for other popular databases.

Added:
    incubator/ode/trunk/dao-hibernate-db-derby/src/main/sql/ode.postgres.properties
    incubator/ode/trunk/dao-hibernate-db-derby/src/main/sql/ode.sqlserver.properties
    incubator/ode/trunk/dao-hibernate-db-derby/src/main/sql/tables_postgres.sql
    incubator/ode/trunk/dao-hibernate-db-derby/src/main/sql/tables_sqlserver.sql
Modified:
    incubator/ode/trunk/dao-hibernate-db-derby/build.xml

Modified: incubator/ode/trunk/dao-hibernate-db-derby/build.xml
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/dao-hibernate-db-derby/build.xml?view=diff&rev=470621&r1=470620&r2=470621
==============================================================================
--- incubator/ode/trunk/dao-hibernate-db-derby/build.xml (original)
+++ incubator/ode/trunk/dao-hibernate-db-derby/build.xml Thu Nov  2 16:59:29 2006
@@ -26,6 +26,8 @@
 
     <property name="derby.target.sql" value="${target.dir}/derby.sql" />
     <property name="mysql.target.sql" value="${target.dir}/mysql.sql" />
+    <property name="sqls.target.sql" value="${target.dir}/sqlserver.sql" />
+    <property name="postgres.target.sql" value="${target.dir}/postgres.sql" />
 
     <target name="db" depends="depset, tarball" />
 
@@ -83,6 +85,12 @@
         <concat destfile="${mysql.target.sql}" append="true">
             <fileset file="${src.sql.dir}/tables_mysql_innodb.sql" />
         </concat>
+        <concat destfile="${sqls.target.sql}" append="true">
+            <fileset file="${src.sql.dir}/tables_sqlserver.sql" />
+        </concat>
+        <concat destfile="${postgres.target.sql}" append="true">
+            <fileset file="${src.sql.dir}/tables_postgres.sql" />
+        </concat>
     </target>
 
     <target name="schemaexport" >
@@ -109,6 +117,28 @@
                       drop="no"
                       create="yes"
                       output="${mysql.target.sql}">
+            <fileset dir="${basedir}/../dao-hibernate/target/generated-resources/xdoclet">
+                <include name="**/*.hbm.xml"/>
+            </fileset>
+        </schemaexport>
+        <schemaexport properties="${src.sql.dir}/ode.sqlserver.properties"
+                      quiet="yes"
+                      text="yes"
+                      delimiter=";"
+                      drop="no"
+                      create="yes"
+                      output="${sqls.target.sql}">
+            <fileset dir="${basedir}/../dao-hibernate/target/generated-resources/xdoclet">
+                <include name="**/*.hbm.xml"/>
+            </fileset>
+        </schemaexport>
+        <schemaexport properties="${src.sql.dir}/ode.postgres.properties"
+                      quiet="yes"
+                      text="yes"
+                      delimiter=";"
+                      drop="no"
+                      create="yes"
+                      output="${postgres.target.sql}">
             <fileset dir="${basedir}/../dao-hibernate/target/generated-resources/xdoclet">
                 <include name="**/*.hbm.xml"/>
             </fileset>

Added: incubator/ode/trunk/dao-hibernate-db-derby/src/main/sql/ode.postgres.properties
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/dao-hibernate-db-derby/src/main/sql/ode.postgres.properties?view=auto&rev=470621
==============================================================================
--- incubator/ode/trunk/dao-hibernate-db-derby/src/main/sql/ode.postgres.properties (added)
+++ incubator/ode/trunk/dao-hibernate-db-derby/src/main/sql/ode.postgres.properties Thu Nov  2 16:59:29 2006
@@ -0,0 +1,51 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+#
+# Misc. Hibernate DAO Configuration
+# Settings in this file override the defaults.
+#
+
+# The type of database we are connecting to, uncomment the
+# correct one:
+
+#hibernate.dialect=org.hibernate.dialect.DerbyDialect
+#hibernate.dialect=org.hibernate.dialect.MySQLDialect
+#hibernate.dialect=org.hibernate.dialect.HSQLDialect
+#hibernate.dialect=org.hibernate.dialect.OracleDialect
+#hibernate.dialect=org.hibernate.dialect.Oracle9Dialect
+#hibernate.dialect=org.hibernate.dialect.SQLServerDialect
+hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
+#hibernate.dialect=org.hibernate.dialect.SybaseDialect
+
+#Enable SQL-level debug logging (uncomment for logging)
+#hibernate.show_sql=true
+
+# Enable schema auto-generation.
+hibernate.hbm2ddl.auto = update
+
+# Hibernate / JTA Session Management Conifguration 
+hibernate.current_session_context_class=jta
+hibernate.transaction.manager_lookup_class=org.apache.ode.daohib.HibernateTransactionManagerLookup
+
+
+# see Query Language Changes http://www.hibernate.org/250.html: here to prevent
+# problems related to ANTLR class loading. Can be commented out on platforms 
+# where new ANTLRs are present 
+#hibernate.query.factory_class=org.hibernate.hql.classic.ClassicQueryTranslatorFactory

Added: incubator/ode/trunk/dao-hibernate-db-derby/src/main/sql/ode.sqlserver.properties
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/dao-hibernate-db-derby/src/main/sql/ode.sqlserver.properties?view=auto&rev=470621
==============================================================================
--- incubator/ode/trunk/dao-hibernate-db-derby/src/main/sql/ode.sqlserver.properties (added)
+++ incubator/ode/trunk/dao-hibernate-db-derby/src/main/sql/ode.sqlserver.properties Thu Nov  2 16:59:29 2006
@@ -0,0 +1,51 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+#
+# Misc. Hibernate DAO Configuration
+# Settings in this file override the defaults.
+#
+
+# The type of database we are connecting to, uncomment the
+# correct one:
+
+#hibernate.dialect=org.hibernate.dialect.DerbyDialect
+#hibernate.dialect=org.hibernate.dialect.MySQLDialect
+#hibernate.dialect=org.hibernate.dialect.HSQLDialect
+#hibernate.dialect=org.hibernate.dialect.OracleDialect
+#hibernate.dialect=org.hibernate.dialect.Oracle9Dialect
+hibernate.dialect=org.hibernate.dialect.SQLServerDialect
+#hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
+#hibernate.dialect=org.hibernate.dialect.SybaseDialect
+
+#Enable SQL-level debug logging (uncomment for logging)
+#hibernate.show_sql=true
+
+# Enable schema auto-generation.
+hibernate.hbm2ddl.auto = update
+
+# Hibernate / JTA Session Management Conifguration 
+hibernate.current_session_context_class=jta
+hibernate.transaction.manager_lookup_class=org.apache.ode.daohib.HibernateTransactionManagerLookup
+
+
+# see Query Language Changes http://www.hibernate.org/250.html: here to prevent
+# problems related to ANTLR class loading. Can be commented out on platforms 
+# where new ANTLRs are present 
+#hibernate.query.factory_class=org.hibernate.hql.classic.ClassicQueryTranslatorFactory

Added: incubator/ode/trunk/dao-hibernate-db-derby/src/main/sql/tables_postgres.sql
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/dao-hibernate-db-derby/src/main/sql/tables_postgres.sql?view=auto&rev=470621
==============================================================================
--- incubator/ode/trunk/dao-hibernate-db-derby/src/main/sql/tables_postgres.sql (added)
+++ incubator/ode/trunk/dao-hibernate-db-derby/src/main/sql/tables_postgres.sql Thu Nov  2 16:59:29 2006
@@ -0,0 +1,162 @@
+# Thanks to Patrick Lightbody for submitting this...
+#
+# In your Quartz properties file, you'll need to set 
+# org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.PostreSQLDelegate
+
+drop table qrtz_job_listeners;
+drop table qrtz_trigger_listeners;
+drop table qrtz_fired_triggers;
+DROP TABLE QRTZ_PAUSED_TRIGGER_GRPS;
+DROP TABLE QRTZ_SCHEDULER_STATE;
+DROP TABLE QRTZ_LOCKS;
+drop table qrtz_simple_triggers;
+drop table qrtz_cron_triggers;
+DROP TABLE QRTZ_BLOB_TRIGGERS;
+drop table qrtz_triggers;
+drop table qrtz_job_details;
+drop table qrtz_calendars;
+
+CREATE TABLE qrtz_job_details
+  (
+    JOB_NAME  VARCHAR(80) NOT NULL,
+    JOB_GROUP VARCHAR(80) NOT NULL,
+    DESCRIPTION VARCHAR(120) NULL,
+    JOB_CLASS_NAME   VARCHAR(128) NOT NULL, 
+    IS_DURABLE VARCHAR(1) NOT NULL,
+    IS_VOLATILE VARCHAR(1) NOT NULL,
+    IS_STATEFUL VARCHAR(1) NOT NULL,
+    REQUESTS_RECOVERY VARCHAR(1) NOT NULL,
+    JOB_DATA BYTEA NULL,
+    PRIMARY KEY (JOB_NAME,JOB_GROUP)
+);
+
+CREATE TABLE qrtz_job_listeners
+  (
+    JOB_NAME  VARCHAR(80) NOT NULL, 
+    JOB_GROUP VARCHAR(80) NOT NULL,
+    JOB_LISTENER VARCHAR(80) NOT NULL,
+    PRIMARY KEY (JOB_NAME,JOB_GROUP,JOB_LISTENER),
+    FOREIGN KEY (JOB_NAME,JOB_GROUP) 
+	REFERENCES QRTZ_JOB_DETAILS(JOB_NAME,JOB_GROUP) 
+);
+
+CREATE TABLE qrtz_triggers
+  (
+    TRIGGER_NAME VARCHAR(80) NOT NULL,
+    TRIGGER_GROUP VARCHAR(80) NOT NULL,
+    JOB_NAME  VARCHAR(80) NOT NULL, 
+    JOB_GROUP VARCHAR(80) NOT NULL,
+    IS_VOLATILE VARCHAR(1) NOT NULL,
+    DESCRIPTION VARCHAR(120) NULL,
+    NEXT_FIRE_TIME BIGINT NULL,
+    PREV_FIRE_TIME BIGINT NULL,
+    TRIGGER_STATE VARCHAR(16) NOT NULL,
+    TRIGGER_TYPE VARCHAR(8) NOT NULL,
+    START_TIME BIGINT NOT NULL,
+    END_TIME BIGINT NULL,
+    CALENDAR_NAME VARCHAR(80) NULL,
+    MISFIRE_INSTR SMALLINT NULL,
+    JOB_DATA BYTEA NULL,
+    PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP),
+    FOREIGN KEY (JOB_NAME,JOB_GROUP) 
+	REFERENCES QRTZ_JOB_DETAILS(JOB_NAME,JOB_GROUP) 
+);
+
+CREATE TABLE qrtz_simple_triggers
+  (
+    TRIGGER_NAME VARCHAR(80) NOT NULL,
+    TRIGGER_GROUP VARCHAR(80) NOT NULL,
+    REPEAT_COUNT BIGINT NOT NULL,
+    REPEAT_INTERVAL BIGINT NOT NULL,
+    TIMES_TRIGGERED BIGINT NOT NULL,
+    PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP),
+    FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP) 
+	REFERENCES QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP)
+);
+
+CREATE TABLE qrtz_cron_triggers
+  (
+    TRIGGER_NAME VARCHAR(80) NOT NULL,
+    TRIGGER_GROUP VARCHAR(80) NOT NULL,
+    CRON_EXPRESSION VARCHAR(80) NOT NULL,
+    TIME_ZONE_ID VARCHAR(80),
+    PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP),
+    FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP) 
+	REFERENCES QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP)
+);
+
+CREATE TABLE qrtz_blob_triggers
+  (
+    TRIGGER_NAME VARCHAR(80) NOT NULL,
+    TRIGGER_GROUP VARCHAR(80) NOT NULL,
+    BLOB_DATA BYTEA NULL,
+    PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP),
+    FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP) 
+        REFERENCES QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP)
+);
+
+CREATE TABLE qrtz_trigger_listeners
+  (
+    TRIGGER_NAME  VARCHAR(80) NOT NULL, 
+    TRIGGER_GROUP VARCHAR(80) NOT NULL,
+    TRIGGER_LISTENER VARCHAR(80) NOT NULL,
+    PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP,TRIGGER_LISTENER),
+    FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP) 
+	REFERENCES QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP)
+);
+
+
+CREATE TABLE qrtz_calendars
+  (
+    CALENDAR_NAME  VARCHAR(80) NOT NULL, 
+    CALENDAR BYTEA NOT NULL,
+    PRIMARY KEY (CALENDAR_NAME)
+);
+
+
+CREATE TABLE qrtz_paused_trigger_grps
+  (
+    TRIGGER_GROUP  VARCHAR(80) NOT NULL, 
+    PRIMARY KEY (TRIGGER_GROUP)
+);
+
+CREATE TABLE qrtz_fired_triggers 
+  (
+    ENTRY_ID VARCHAR(95) NOT NULL,
+    TRIGGER_NAME VARCHAR(80) NOT NULL,
+    TRIGGER_GROUP VARCHAR(80) NOT NULL,
+    IS_VOLATILE VARCHAR(1) NOT NULL,
+    INSTANCE_NAME VARCHAR(80) NOT NULL,
+    FIRED_TIME BIGINT NOT NULL,
+    STATE VARCHAR(16) NOT NULL,
+    JOB_NAME VARCHAR(80) NULL,
+    JOB_GROUP VARCHAR(80) NULL,
+    IS_STATEFUL VARCHAR(1) NULL,
+    REQUESTS_RECOVERY VARCHAR(1) NULL,
+    PRIMARY KEY (ENTRY_ID)
+);
+
+CREATE TABLE qrtz_scheduler_state 
+  (
+    INSTANCE_NAME VARCHAR(80) NOT NULL,
+    LAST_CHECKIN_TIME BIGINT NOT NULL,
+    CHECKIN_INTERVAL BIGINT NOT NULL,
+    RECOVERER VARCHAR(80) NULL,
+    PRIMARY KEY (INSTANCE_NAME)
+);
+
+CREATE TABLE qrtz_locks
+  (
+    LOCK_NAME  VARCHAR(40) NOT NULL, 
+    PRIMARY KEY (LOCK_NAME)
+);
+
+
+INSERT INTO qrtz_locks values('TRIGGER_ACCESS');
+INSERT INTO qrtz_locks values('JOB_ACCESS');
+INSERT INTO qrtz_locks values('CALENDAR_ACCESS');
+INSERT INTO qrtz_locks values('STATE_ACCESS');
+INSERT INTO qrtz_locks values('MISFIRE_ACCESS');
+
+commit;
+

Added: incubator/ode/trunk/dao-hibernate-db-derby/src/main/sql/tables_sqlserver.sql
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/dao-hibernate-db-derby/src/main/sql/tables_sqlserver.sql?view=auto&rev=470621
==============================================================================
--- incubator/ode/trunk/dao-hibernate-db-derby/src/main/sql/tables_sqlserver.sql (added)
+++ incubator/ode/trunk/dao-hibernate-db-derby/src/main/sql/tables_sqlserver.sql Thu Nov  2 16:59:29 2006
@@ -0,0 +1,351 @@
+--# thanks to George Papastamatopoulos for submitting this ... and Marko Lahma for
+--# updating it.
+--#
+--# In your Quartz properties file, you'll need to set 
+--# org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.MSSQLDelegate
+--#
+--# you shouse enter your DB instance's name on the next line in place of "enter_db_name_here"
+--#
+--#
+--# From a helpful (but anonymous) Quartz user:
+--#
+--# Regarding this error message:  
+--#
+--#     [Microsoft][SQLServer 2000 Driver for JDBC]Can't start a cloned connection while in manual transaction mode.
+--#
+--#
+--#     I added "SelectMethod=cursor;" to my Connection URL in the config file. 
+--#     It Seems to work, hopefully no side effects.
+--#
+--#		example:
+--#		"jdbc:microsoft:sqlserver://dbmachine:1433;SelectMethod=cursor"; 
+--#
+--# Another user has pointed out that you will probably need to use the 
+--# JTDS driver
+--#
+
+USE [enter_db_name_here]
+GO
+
+IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[FK_QRTZ_JOB_LISTENERS_QRTZ_JOB_DETAILS]') AND OBJECTPROPERTY(id, N'ISFOREIGNKEY') = 1)
+ALTER TABLE [dbo].[QRTZ_JOB_LISTENERS] DROP CONSTRAINT FK_QRTZ_JOB_LISTENERS_QRTZ_JOB_DETAILS
+GO
+
+IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[FK_QRTZ_TRIGGERS_QRTZ_JOB_DETAILS]') AND OBJECTPROPERTY(id, N'ISFOREIGNKEY') = 1)
+ALTER TABLE [dbo].[QRTZ_TRIGGERS] DROP CONSTRAINT FK_QRTZ_TRIGGERS_QRTZ_JOB_DETAILS
+GO
+
+IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[FK_QRTZ_CRON_TRIGGERS_QRTZ_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISFOREIGNKEY') = 1)
+ALTER TABLE [dbo].[QRTZ_CRON_TRIGGERS] DROP CONSTRAINT FK_QRTZ_CRON_TRIGGERS_QRTZ_TRIGGERS
+GO
+
+IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[FK_QRTZ_SIMPLE_TRIGGERS_QRTZ_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISFOREIGNKEY') = 1)
+ALTER TABLE [dbo].[QRTZ_SIMPLE_TRIGGERS] DROP CONSTRAINT FK_QRTZ_SIMPLE_TRIGGERS_QRTZ_TRIGGERS
+GO
+
+IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[FK_QRTZ_TRIGGER_LISTENERS_QRTZ_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISFOREIGNKEY') = 1)
+ALTER TABLE [dbo].[QRTZ_TRIGGER_LISTENERS] DROP CONSTRAINT FK_QRTZ_TRIGGER_LISTENERS_QRTZ_TRIGGERS
+GO
+
+IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_CALENDARS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
+DROP TABLE [dbo].[QRTZ_CALENDARS]
+GO
+
+IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_CRON_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
+DROP TABLE [dbo].[QRTZ_CRON_TRIGGERS]
+GO
+
+IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_BLOB_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
+DROP TABLE [dbo].[QRTZ_BLOB_TRIGGERS]
+GO
+
+IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_FIRED_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
+DROP TABLE [dbo].[QRTZ_FIRED_TRIGGERS]
+GO
+
+IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_PAUSED_TRIGGER_GRPS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
+DROP TABLE [dbo].[QRTZ_PAUSED_TRIGGER_GRPS]
+GO
+
+IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_SCHEDULER_STATE]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
+DROP TABLE [dbo].[QRTZ_SCHEDULER_STATE]
+GO
+
+IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_LOCKS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
+DROP TABLE [dbo].[QRTZ_LOCKS]
+GO
+
+IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_JOB_DETAILS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
+DROP TABLE [dbo].[QRTZ_JOB_DETAILS]
+GO
+
+IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_JOB_LISTENERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
+DROP TABLE [dbo].[QRTZ_JOB_LISTENERS]
+GO
+
+IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_SIMPLE_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
+DROP TABLE [dbo].[QRTZ_SIMPLE_TRIGGERS]
+GO
+
+IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_TRIGGER_LISTENERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
+DROP TABLE [dbo].[QRTZ_TRIGGER_LISTENERS]
+GO
+
+IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
+DROP TABLE [dbo].[QRTZ_TRIGGERS]
+GO
+
+CREATE TABLE [dbo].[QRTZ_CALENDARS] (
+  [CALENDAR_NAME] [VARCHAR] (80)  NOT NULL ,
+  [CALENDAR] [IMAGE] NOT NULL
+) ON [PRIMARY]
+GO
+
+CREATE TABLE [dbo].[QRTZ_CRON_TRIGGERS] (
+  [TRIGGER_NAME] [VARCHAR] (80)  NOT NULL ,
+  [TRIGGER_GROUP] [VARCHAR] (80)  NOT NULL ,
+  [CRON_EXPRESSION] [VARCHAR] (80)  NOT NULL ,
+  [TIME_ZONE_ID] [VARCHAR] (80) 
+) ON [PRIMARY]
+GO
+
+CREATE TABLE [dbo].[QRTZ_FIRED_TRIGGERS] (
+  [ENTRY_ID] [VARCHAR] (95)  NOT NULL ,
+  [TRIGGER_NAME] [VARCHAR] (80)  NOT NULL ,
+  [TRIGGER_GROUP] [VARCHAR] (80)  NOT NULL ,
+  [IS_VOLATILE] [VARCHAR] (1)  NOT NULL ,
+  [INSTANCE_NAME] [VARCHAR] (80)  NOT NULL ,
+  [FIRED_TIME] [BIGINT] NOT NULL ,
+  [STATE] [VARCHAR] (16)  NOT NULL,
+  [JOB_NAME] [VARCHAR] (80)  NULL ,
+  [JOB_GROUP] [VARCHAR] (80)  NULL ,
+  [IS_STATEFUL] [VARCHAR] (1)  NULL ,
+  [REQUESTS_RECOVERY] [VARCHAR] (1)  NULL 
+) ON [PRIMARY]
+GO
+
+CREATE TABLE [dbo].[QRTZ_PAUSED_TRIGGER_GRPS] (
+  [TRIGGER_GROUP] [VARCHAR] (80)  NOT NULL 
+) ON [PRIMARY]
+GO
+
+CREATE TABLE [dbo].[QRTZ_SCHEDULER_STATE] (
+  [INSTANCE_NAME] [VARCHAR] (80)  NOT NULL ,
+  [LAST_CHECKIN_TIME] [BIGINT] NOT NULL ,
+  [CHECKIN_INTERVAL] [BIGINT] NOT NULL ,
+  [RECOVERER] [VARCHAR] (80)  NULL 
+) ON [PRIMARY]
+GO
+
+CREATE TABLE [dbo].[QRTZ_LOCKS] (
+  [LOCK_NAME] [VARCHAR] (40)  NOT NULL 
+) ON [PRIMARY]
+GO
+
+CREATE TABLE [dbo].[QRTZ_JOB_DETAILS] (
+  [JOB_NAME] [VARCHAR] (80)  NOT NULL ,
+  [JOB_GROUP] [VARCHAR] (80)  NOT NULL ,
+  [DESCRIPTION] [VARCHAR] (120) NULL ,
+  [JOB_CLASS_NAME] [VARCHAR] (128)  NOT NULL ,
+  [IS_DURABLE] [VARCHAR] (1)  NOT NULL ,
+  [IS_VOLATILE] [VARCHAR] (1)  NOT NULL ,
+  [IS_STATEFUL] [VARCHAR] (1)  NOT NULL ,
+  [REQUESTS_RECOVERY] [VARCHAR] (1)  NOT NULL ,
+  [JOB_DATA] [IMAGE] NULL
+) ON [PRIMARY]
+GO
+
+CREATE TABLE [dbo].[QRTZ_JOB_LISTENERS] (
+  [JOB_NAME] [VARCHAR] (80)  NOT NULL ,
+  [JOB_GROUP] [VARCHAR] (80)  NOT NULL ,
+  [JOB_LISTENER] [VARCHAR] (80)  NOT NULL
+) ON [PRIMARY]
+GO
+
+CREATE TABLE [dbo].[QRTZ_SIMPLE_TRIGGERS] (
+  [TRIGGER_NAME] [VARCHAR] (80)  NOT NULL ,
+  [TRIGGER_GROUP] [VARCHAR] (80)  NOT NULL ,
+  [REPEAT_COUNT] [BIGINT] NOT NULL ,
+  [REPEAT_INTERVAL] [BIGINT] NOT NULL ,
+  [TIMES_TRIGGERED] [BIGINT] NOT NULL
+) ON [PRIMARY]
+GO
+
+CREATE TABLE [dbo].[QRTZ_BLOB_TRIGGERS] (
+  [TRIGGER_NAME] [VARCHAR] (80)  NOT NULL ,
+  [TRIGGER_GROUP] [VARCHAR] (80)  NOT NULL ,
+  [BLOB_DATA] [IMAGE] NULL
+) ON [PRIMARY]
+GO
+
+CREATE TABLE [dbo].[QRTZ_TRIGGER_LISTENERS] (
+  [TRIGGER_NAME] [VARCHAR] (80)  NOT NULL ,
+  [TRIGGER_GROUP] [VARCHAR] (80)  NOT NULL ,
+  [TRIGGER_LISTENER] [VARCHAR] (80)  NOT NULL
+) ON [PRIMARY]
+GO
+
+CREATE TABLE [dbo].[QRTZ_TRIGGERS] (
+  [TRIGGER_NAME] [VARCHAR] (80)  NOT NULL ,
+  [TRIGGER_GROUP] [VARCHAR] (80)  NOT NULL ,
+  [JOB_NAME] [VARCHAR] (80)  NOT NULL ,
+  [JOB_GROUP] [VARCHAR] (80)  NOT NULL ,
+  [IS_VOLATILE] [VARCHAR] (1)  NOT NULL ,
+  [DESCRIPTION] [VARCHAR] (120) NULL ,
+  [NEXT_FIRE_TIME] [BIGINT] NULL ,
+  [PREV_FIRE_TIME] [BIGINT] NULL ,
+  [TRIGGER_STATE] [VARCHAR] (16)  NOT NULL ,
+  [TRIGGER_TYPE] [VARCHAR] (8)  NOT NULL ,
+  [START_TIME] [BIGINT] NOT NULL ,
+  [END_TIME] [BIGINT] NULL ,
+  [CALENDAR_NAME] [VARCHAR] (80)  NULL ,
+  [MISFIRE_INSTR] [SMALLINT] NULL ,
+  [JOB_DATA] [IMAGE] NULL
+) ON [PRIMARY]
+GO
+
+ALTER TABLE [dbo].[QRTZ_CALENDARS] WITH NOCHECK ADD
+  CONSTRAINT [PK_QRTZ_CALENDARS] PRIMARY KEY  CLUSTERED
+  (
+    [CALENDAR_NAME]
+  )  ON [PRIMARY]
+GO
+
+ALTER TABLE [dbo].[QRTZ_CRON_TRIGGERS] WITH NOCHECK ADD
+  CONSTRAINT [PK_QRTZ_CRON_TRIGGERS] PRIMARY KEY  CLUSTERED
+  (
+    [TRIGGER_NAME],
+    [TRIGGER_GROUP]
+  )  ON [PRIMARY]
+GO
+
+ALTER TABLE [dbo].[QRTZ_FIRED_TRIGGERS] WITH NOCHECK ADD
+  CONSTRAINT [PK_QRTZ_FIRED_TRIGGERS] PRIMARY KEY  CLUSTERED
+  (
+    [ENTRY_ID]
+  )  ON [PRIMARY]
+GO
+
+ALTER TABLE [dbo].[QRTZ_PAUSED_TRIGGER_GRPS] WITH NOCHECK ADD
+  CONSTRAINT [PK_QRTZ_PAUSED_TRIGGER_GRPS] PRIMARY KEY  CLUSTERED
+  (
+    [TRIGGER_GROUP]
+  )  ON [PRIMARY]
+GO
+
+ALTER TABLE [dbo].[QRTZ_SCHEDULER_STATE] WITH NOCHECK ADD
+  CONSTRAINT [PK_QRTZ_SCHEDULER_STATE] PRIMARY KEY  CLUSTERED
+  (
+    [INSTANCE_NAME]
+  )  ON [PRIMARY]
+GO
+
+ALTER TABLE [dbo].[QRTZ_LOCKS] WITH NOCHECK ADD
+  CONSTRAINT [PK_QRTZ_LOCKS] PRIMARY KEY  CLUSTERED
+  (
+    [LOCK_NAME]
+  )  ON [PRIMARY]
+GO
+
+ALTER TABLE [dbo].[QRTZ_JOB_DETAILS] WITH NOCHECK ADD
+  CONSTRAINT [PK_QRTZ_JOB_DETAILS] PRIMARY KEY  CLUSTERED
+  (
+    [JOB_NAME],
+    [JOB_GROUP]
+  )  ON [PRIMARY]
+GO
+
+ALTER TABLE [dbo].[QRTZ_JOB_LISTENERS] WITH NOCHECK ADD
+  CONSTRAINT [PK_QRTZ_JOB_LISTENERS] PRIMARY KEY  CLUSTERED
+  (
+    [JOB_NAME],
+    [JOB_GROUP],
+    [JOB_LISTENER]
+  )  ON [PRIMARY]
+GO
+
+ALTER TABLE [dbo].[QRTZ_SIMPLE_TRIGGERS] WITH NOCHECK ADD
+  CONSTRAINT [PK_QRTZ_SIMPLE_TRIGGERS] PRIMARY KEY  CLUSTERED
+  (
+    [TRIGGER_NAME],
+    [TRIGGER_GROUP]
+  )  ON [PRIMARY]
+GO
+
+ALTER TABLE [dbo].[QRTZ_TRIGGER_LISTENERS] WITH NOCHECK ADD
+  CONSTRAINT [PK_QRTZ_TRIGGER_LISTENERS] PRIMARY KEY  CLUSTERED
+  (
+    [TRIGGER_NAME],
+    [TRIGGER_GROUP],
+    [TRIGGER_LISTENER]
+  )  ON [PRIMARY]
+GO
+
+ALTER TABLE [dbo].[QRTZ_TRIGGERS] WITH NOCHECK ADD
+  CONSTRAINT [PK_QRTZ_TRIGGERS] PRIMARY KEY  CLUSTERED
+  (
+    [TRIGGER_NAME],
+    [TRIGGER_GROUP]
+  )  ON [PRIMARY]
+GO
+
+ALTER TABLE [dbo].[QRTZ_CRON_TRIGGERS] ADD
+  CONSTRAINT [FK_QRTZ_CRON_TRIGGERS_QRTZ_TRIGGERS] FOREIGN KEY
+  (
+    [TRIGGER_NAME],
+    [TRIGGER_GROUP]
+  ) REFERENCES [dbo].[QRTZ_TRIGGERS] (
+    [TRIGGER_NAME],
+    [TRIGGER_GROUP]
+  ) ON DELETE CASCADE
+GO
+
+ALTER TABLE [dbo].[QRTZ_JOB_LISTENERS] ADD
+  CONSTRAINT [FK_QRTZ_JOB_LISTENERS_QRTZ_JOB_DETAILS] FOREIGN KEY
+  (
+    [JOB_NAME],
+    [JOB_GROUP]
+  ) REFERENCES [dbo].[QRTZ_JOB_DETAILS] (
+    [JOB_NAME],
+    [JOB_GROUP]
+  ) ON DELETE CASCADE
+GO
+
+ALTER TABLE [dbo].[QRTZ_SIMPLE_TRIGGERS] ADD
+  CONSTRAINT [FK_QRTZ_SIMPLE_TRIGGERS_QRTZ_TRIGGERS] FOREIGN KEY
+  (
+    [TRIGGER_NAME],
+    [TRIGGER_GROUP]
+  ) REFERENCES [dbo].[QRTZ_TRIGGERS] (
+    [TRIGGER_NAME],
+    [TRIGGER_GROUP]
+  ) ON DELETE CASCADE
+GO
+
+ALTER TABLE [dbo].[QRTZ_TRIGGER_LISTENERS] ADD
+  CONSTRAINT [FK_QRTZ_TRIGGER_LISTENERS_QRTZ_TRIGGERS] FOREIGN KEY
+  (
+    [TRIGGER_NAME],
+    [TRIGGER_GROUP]
+  ) REFERENCES [dbo].[QRTZ_TRIGGERS] (
+    [TRIGGER_NAME],
+    [TRIGGER_GROUP]
+  ) ON DELETE CASCADE
+GO
+
+ALTER TABLE [dbo].[QRTZ_TRIGGERS] ADD
+  CONSTRAINT [FK_QRTZ_TRIGGERS_QRTZ_JOB_DETAILS] FOREIGN KEY
+  (
+    [JOB_NAME],
+    [JOB_GROUP]
+  ) REFERENCES [dbo].[QRTZ_JOB_DETAILS] (
+    [JOB_NAME],
+    [JOB_GROUP]
+  )
+GO
+
+INSERT INTO [dbo].[QRTZ_LOCKS] VALUES('TRIGGER_ACCESS');
+INSERT INTO [dbo].[QRTZ_LOCKS] VALUES('JOB_ACCESS');
+INSERT INTO [dbo].[QRTZ_LOCKS] VALUES('CALENDAR_ACCESS');
+INSERT INTO [dbo].[QRTZ_LOCKS] VALUES('STATE_ACCESS');
+INSERT INTO [dbo].[QRTZ_LOCKS] VALUES('MISFIRE_ACCESS');