mssql compatibility (fix #396)

This commit is contained in:
Athou
2013-07-07 10:32:37 +02:00
parent 02d335ca1f
commit 8792069ae0
6 changed files with 33 additions and 27 deletions

View File

@@ -35,7 +35,7 @@ See [here](http://jasonwryan.com/blog/2013/05/25/greader/) for an alternative me
Deployment on your own server
-----------------------------
For storage, you can either use an embedded HSQLDB database or an external MySQL or PostgreSQL database.
For storage, you can either use an embedded HSQLDB database or an external MySQL, PostgreSQL or SQLServer database.
You also need Maven 3.x (and a Java 1.7+ JDK) installed in order to build the application.
To install maven and openjdk on Ubuntu, issue the following commands
@@ -57,7 +57,7 @@ If you don't have git you can download the sources as a zip file from [here](htt
Now build the application
Embedded HSQL database
Embedded HSQL database:
mvn clean package tomee:build -Pprod
External MySQL database:
@@ -66,6 +66,9 @@ Now build the application
External PostgreSQL database:
mvn clean package tomee:build -Pprod -Ppgsql
External Microsoft SQL Server database:
mvn clean package tomee:build -Pprod -Pmssql
It will generate a zip file at `target/commafeed.zip` with everything you need to run the application.
* Create a directory somewhere (e.g. `/opt/commafeed/`) and extract the generated zip inside this directory.

11
pom.xml
View File

@@ -17,7 +17,6 @@
<production>false</production>
<jpa.show_sql>false</jpa.show_sql>
<jpa.datasource.name>java:openejb/Resource/My DataSource</jpa.datasource.name>
<jpa.dialect>org.hibernate.dialect.HSQLDialect</jpa.dialect>
<jpa.cache>false</jpa.cache>
<cache_service.class>com.commafeed.backend.cache.NoopCacheService</cache_service.class>
</properties>
@@ -120,6 +119,7 @@
<lib>org.hsqldb:hsqldb:SNAPSHOT</lib>
<lib>mysql:mysql-connector-java:5.1.24</lib>
<lib>postgresql:postgresql:9.1-901.jdbc4</lib>
<lib>net.sourceforge.jtds:jtds:1.3.0</lib>
<lib>org.infinispan:infinispan-core:5.1.4.FINAL</lib>
<lib>org.hibernate:hibernate-infinispan:4.1.11.Final</lib>
@@ -434,7 +434,6 @@
<id>openshift</id>
<properties>
<jpa.datasource.name>java:jboss/datasources/MysqlDS</jpa.datasource.name>
<jpa.dialect>com.commafeed.backend.MySQL5Dialect</jpa.dialect>
</properties>
<build>
<finalName>commafeed</finalName>
@@ -474,14 +473,18 @@
<id>mysql</id>
<properties>
<jpa.datasource.name>java:openejb/Resource/MySQL</jpa.datasource.name>
<jpa.dialect>com.commafeed.backend.MySQL5Dialect</jpa.dialect>
</properties>
</profile>
<profile>
<id>pgsql</id>
<properties>
<jpa.datasource.name>java:openejb/Resource/PostgreSQL</jpa.datasource.name>
<jpa.dialect>org.hibernate.dialect.PostgreSQLDialect</jpa.dialect>
</properties>
</profile>
<profile>
<id>mssql</id>
<properties>
<jpa.datasource.name>java:openejb/Resource/MSSQL</jpa.datasource.name>
</properties>
</profile>
<profile>

View File

@@ -1,10 +0,0 @@
package com.commafeed.backend;
import org.hibernate.dialect.MySQL5InnoDBDialect;
public class MySQL5Dialect extends MySQL5InnoDBDialect {
public String getTableTypeString() {
return " ENGINE=InnoDB DEFAULT CHARSET=utf8";
}
}

View File

@@ -14,7 +14,6 @@
<property name="use_sql_comments" value="true" />
<property name="hibernate.show_sql" value="${jpa.show_sql}" />
<property name="hibernate.dialect" value="${jpa.dialect}" />
<property name="hibernate.default_batch_fetch_size" value="100" />
<property name="hibernate.jdbc.batch_size" value="50" />

View File

@@ -32,6 +32,8 @@
</changeSet>
<changeSet author="athou" id="recreate-sequences">
<validCheckSum>7:094e881ed7e4fa14fb1f61147ce44acc</validCheckSum>
<validCheckSum>7:f4bf2004a72bb41daa128df5771af902</validCheckSum>
<preConditions onFail="MARK_RAN" onFailMessage="table already exists">
<not>
<tableExists tableName="hibernate_sequences" />
@@ -41,16 +43,16 @@
<column name="sequence_name" type="VARCHAR(255)" />
<column name="sequence_next_hi_value" type="INT" />
</createTable>
<sql>insert into hibernate_sequences(sequence_name, sequence_next_hi_value) select 'APPLICATIONSETTINGS', COALESCE(ceil(max(id) / 1000 + 2), 1) from APPLICATIONSETTINGS</sql>
<sql>insert into hibernate_sequences(sequence_name, sequence_next_hi_value) select 'FEEDCATEGORIES', COALESCE(ceil(max(id) / 1000 + 2), 1) from FEEDCATEGORIES</sql>
<sql>insert into hibernate_sequences(sequence_name, sequence_next_hi_value) select 'FEEDENTRIES', COALESCE(ceil(max(id) / 1000 + 2), 1) from FEEDENTRIES</sql>
<sql>insert into hibernate_sequences(sequence_name, sequence_next_hi_value) select 'FEEDENTRYCONTENTS', COALESCE(ceil(max(id) / 1000 + 2), 1) from FEEDENTRYCONTENTS</sql>
<sql>insert into hibernate_sequences(sequence_name, sequence_next_hi_value) select 'FEEDENTRYSTATUSES', COALESCE(ceil(max(id) / 1000 + 2), 1) from FEEDENTRYSTATUSES</sql>
<sql>insert into hibernate_sequences(sequence_name, sequence_next_hi_value) select 'FEEDS', COALESCE(ceil(max(id) / 1000 + 2), 1) from FEEDS</sql>
<sql>insert into hibernate_sequences(sequence_name, sequence_next_hi_value) select 'FEEDSUBSCRIPTIONS', COALESCE(ceil(max(id) / 1000 + 2), 1) from FEEDSUBSCRIPTIONS</sql>
<sql>insert into hibernate_sequences(sequence_name, sequence_next_hi_value) select 'USERROLES', COALESCE(ceil(max(id) / 1000 + 2), 1) from USERROLES</sql>
<sql>insert into hibernate_sequences(sequence_name, sequence_next_hi_value) select 'USERS', COALESCE(ceil(max(id) / 1000 + 2), 1) from USERS</sql>
<sql>insert into hibernate_sequences(sequence_name, sequence_next_hi_value) select 'USERSETTINGS', COALESCE(ceil(max(id) / 1000 + 2), 1) from USERSETTINGS</sql>
<sql>insert into hibernate_sequences(sequence_name, sequence_next_hi_value) select 'APPLICATIONSETTINGS', COALESCE(ceiling(max(id) / 1000 + 2), 1) from APPLICATIONSETTINGS</sql>
<sql>insert into hibernate_sequences(sequence_name, sequence_next_hi_value) select 'FEEDCATEGORIES', COALESCE(ceiling(max(id) / 1000 + 2), 1) from FEEDCATEGORIES</sql>
<sql>insert into hibernate_sequences(sequence_name, sequence_next_hi_value) select 'FEEDENTRIES', COALESCE(ceiling(max(id) / 1000 + 2), 1) from FEEDENTRIES</sql>
<sql>insert into hibernate_sequences(sequence_name, sequence_next_hi_value) select 'FEEDENTRYCONTENTS', COALESCE(ceiling(max(id) / 1000 + 2), 1) from FEEDENTRYCONTENTS</sql>
<sql>insert into hibernate_sequences(sequence_name, sequence_next_hi_value) select 'FEEDENTRYSTATUSES', COALESCE(ceiling(max(id) / 1000 + 2), 1) from FEEDENTRYSTATUSES</sql>
<sql>insert into hibernate_sequences(sequence_name, sequence_next_hi_value) select 'FEEDS', COALESCE(ceiling(max(id) / 1000 + 2), 1) from FEEDS</sql>
<sql>insert into hibernate_sequences(sequence_name, sequence_next_hi_value) select 'FEEDSUBSCRIPTIONS', COALESCE(ceiling(max(id) / 1000 + 2), 1) from FEEDSUBSCRIPTIONS</sql>
<sql>insert into hibernate_sequences(sequence_name, sequence_next_hi_value) select 'USERROLES', COALESCE(ceiling(max(id) / 1000 + 2), 1) from USERROLES</sql>
<sql>insert into hibernate_sequences(sequence_name, sequence_next_hi_value) select 'USERS', COALESCE(ceiling(max(id) / 1000 + 2), 1) from USERS</sql>
<sql>insert into hibernate_sequences(sequence_name, sequence_next_hi_value) select 'USERSETTINGS', COALESCE(ceiling(max(id) / 1000 + 2), 1) from USERSETTINGS</sql>
</changeSet>
<changeSet author="athou" id="add-log-level">

View File

@@ -29,6 +29,15 @@
</Resource>
-->
<!--
<Resource id="MSSQL" type="DataSource">
JdbcDriver net.sourceforge.jtds.jdbc.Driver
JdbcUrl jdbc:jtds:sqlserver://localhost:1433/commafeed;instance=<instanceName, remove if not needed>
UserName cf
Password cf
MaxActive 50
</Resource>
-->