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');