mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-24 17:32:48 +00:00
ACS-1180 ACS 7 Stacks: MySQL 8 (#336)
This commit is contained in:
13
.travis.yml
13
.travis.yml
@@ -142,13 +142,12 @@ jobs:
|
|||||||
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
|
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
|
||||||
script: travis_wait 20 mvn -B test -pl repository -Dtest=AllDBTestsTestSuite -Ddb.driver=com.mysql.jdbc.Driver -Ddb.name=alfresco -Ddb.url=jdbc:mysql://localhost:3307/alfresco -Ddb.username=alfresco -Ddb.password=alfresco
|
script: travis_wait 20 mvn -B test -pl repository -Dtest=AllDBTestsTestSuite -Ddb.driver=com.mysql.jdbc.Driver -Ddb.name=alfresco -Ddb.url=jdbc:mysql://localhost:3307/alfresco -Ddb.username=alfresco -Ddb.password=alfresco
|
||||||
|
|
||||||
# One failing test to do with the schema reference files. ACS-1180
|
- name: "Repository - MySQL 8 tests"
|
||||||
# - name: "Repository - MySQL 8 tests"
|
if: commit_message !~ /\[skip db\]/
|
||||||
# if: commit_message !~ /\[skip db\]/
|
before_script:
|
||||||
# before_script:
|
- docker run -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=alfresco -e MYSQL_USER=alfresco -e MYSQL_DATABASE=alfresco -e MYSQL_PASSWORD=alfresco mysql:8 --transaction-isolation='READ-COMMITTED'
|
||||||
# - docker run -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=alfresco -e MYSQL_USER=alfresco -e MYSQL_DATABASE=alfresco -e MYSQL_PASSWORD=alfresco mysql:8 --transaction-isolation='READ-COMMITTED'
|
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
|
||||||
# - docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
|
script: travis_wait 20 mvn -B test -pl repository -Dtest=AllDBTestsTestSuite -Ddb.driver=com.mysql.jdbc.Driver -Ddb.name=alfresco -Ddb.url=jdbc:mysql://localhost:3307/alfresco -Ddb.username=alfresco -Ddb.password=alfresco
|
||||||
# script: travis_wait 20 mvn -B test -pl repository -Dtest=AllDBTestsTestSuite -Ddb.driver=com.mysql.jdbc.Driver -Ddb.name=alfresco -Ddb.url=jdbc:mysql://localhost:3307/alfresco -Ddb.username=alfresco -Ddb.password=alfresco
|
|
||||||
|
|
||||||
- name: "Repository - PostgreSQL 10.9 tests"
|
- name: "Repository - PostgreSQL 10.9 tests"
|
||||||
if: commit_message !~ /\[skip db\]/
|
if: commit_message !~ /\[skip db\]/
|
||||||
|
@@ -32,8 +32,12 @@ import java.sql.DatabaseMetaData;
|
|||||||
import java.sql.PreparedStatement;
|
import java.sql.PreparedStatement;
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
|
import java.util.LinkedList;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.TreeMap;
|
import java.util.TreeMap;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import javax.sql.DataSource;
|
import javax.sql.DataSource;
|
||||||
|
|
||||||
@@ -41,10 +45,10 @@ import org.alfresco.repo.domain.dialect.Dialect;
|
|||||||
import org.alfresco.repo.domain.dialect.TypeNames;
|
import org.alfresco.repo.domain.dialect.TypeNames;
|
||||||
import org.alfresco.service.descriptor.Descriptor;
|
import org.alfresco.service.descriptor.Descriptor;
|
||||||
import org.alfresco.service.descriptor.DescriptorService;
|
import org.alfresco.service.descriptor.DescriptorService;
|
||||||
|
import org.alfresco.util.DBScriptUtil;
|
||||||
import org.alfresco.util.DatabaseMetaDataHelper;
|
import org.alfresco.util.DatabaseMetaDataHelper;
|
||||||
import org.alfresco.util.DialectUtil;
|
import org.alfresco.util.DialectUtil;
|
||||||
import org.alfresco.util.PropertyCheck;
|
import org.alfresco.util.PropertyCheck;
|
||||||
import org.alfresco.util.DBScriptUtil;
|
|
||||||
import org.alfresco.util.schemacomp.model.Column;
|
import org.alfresco.util.schemacomp.model.Column;
|
||||||
import org.alfresco.util.schemacomp.model.ForeignKey;
|
import org.alfresco.util.schemacomp.model.ForeignKey;
|
||||||
import org.alfresco.util.schemacomp.model.Index;
|
import org.alfresco.util.schemacomp.model.Index;
|
||||||
@@ -257,6 +261,7 @@ public class ExportDb
|
|||||||
tableTypes = new String[] { "TABLE", "VIEW", "SEQUENCE" };
|
tableTypes = new String[] { "TABLE", "VIEW", "SEQUENCE" };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// No tables are returned when using MySQL8 - maybe this issue can be solved if we update the MySQL JDBC driver that we use (the new driver class is `com.mysql.cj.jdbc.Driver').
|
||||||
final ResultSet tables = dbmd.getTables(null, schemaName, prefixFilter, tableTypes);
|
final ResultSet tables = dbmd.getTables(null, schemaName, prefixFilter, tableTypes);
|
||||||
|
|
||||||
processTables(dbmd, tables);
|
processTables(dbmd, tables);
|
||||||
@@ -331,10 +336,11 @@ public class ExportDb
|
|||||||
columns.close();
|
columns.close();
|
||||||
|
|
||||||
|
|
||||||
// Primary key
|
// Primary key - beware that getPrimaryKeys gets primary keys ordered by their column name
|
||||||
final ResultSet primarykeycols = dbmd.getPrimaryKeys(null, tables.getString("TABLE_SCHEM"), tableName);
|
final ResultSet primarykeycols = dbmd.getPrimaryKeys(null, tables.getString("TABLE_SCHEM"), tableName);
|
||||||
|
|
||||||
PrimaryKey pk = null;
|
PrimaryKey pk = null;
|
||||||
|
Map<Integer, String> keySeqsAndColumnNames = new LinkedHashMap<>();
|
||||||
|
|
||||||
while (primarykeycols.next())
|
while (primarykeycols.next())
|
||||||
{
|
{
|
||||||
@@ -343,12 +349,23 @@ public class ExportDb
|
|||||||
String pkName = primarykeycols.getString("PK_NAME");
|
String pkName = primarykeycols.getString("PK_NAME");
|
||||||
pk = new PrimaryKey(pkName);
|
pk = new PrimaryKey(pkName);
|
||||||
}
|
}
|
||||||
String columnName = primarykeycols.getString("COLUMN_NAME");
|
|
||||||
pk.getColumnNames().add(columnName);
|
|
||||||
|
|
||||||
|
// We should add columns ordered by the KEY_SEQ rather than by the column name
|
||||||
|
// Populating map with key sequences and column names for a proper sorting later.
|
||||||
int columnOrder = primarykeycols.getInt("KEY_SEQ");
|
int columnOrder = primarykeycols.getInt("KEY_SEQ");
|
||||||
pk.getColumnOrders().add(columnOrder);
|
String columnName = primarykeycols.getString("COLUMN_NAME");
|
||||||
|
keySeqsAndColumnNames.put(columnOrder, columnName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
List<String> keyseqSortedColumnNames = new LinkedList<>();
|
||||||
|
List<Integer> keySeqSortedColumnOrders = keySeqsAndColumnNames.keySet().stream().sorted().collect(Collectors.toList());
|
||||||
|
for (int keySeq: keySeqSortedColumnOrders)
|
||||||
|
{
|
||||||
|
keyseqSortedColumnNames.add(keySeqsAndColumnNames.get(keySeq));
|
||||||
|
}
|
||||||
|
pk.setColumnOrders(keySeqSortedColumnOrders);
|
||||||
|
pk.setColumnNames(keyseqSortedColumnNames);
|
||||||
|
|
||||||
primarykeycols.close();
|
primarykeycols.close();
|
||||||
|
|
||||||
// If this table has a primary key, add it.
|
// If this table has a primary key, add it.
|
||||||
|
@@ -898,8 +898,8 @@
|
|||||||
</columns>
|
</columns>
|
||||||
<primarykey name="PRIMARY">
|
<primarykey name="PRIMARY">
|
||||||
<columnnames>
|
<columnnames>
|
||||||
<columnname order="2">GROUP_ID_</columnname>
|
|
||||||
<columnname order="1">USER_ID_</columnname>
|
<columnname order="1">USER_ID_</columnname>
|
||||||
|
<columnname order="2">GROUP_ID_</columnname>
|
||||||
</columnnames>
|
</columnnames>
|
||||||
</primarykey>
|
</primarykey>
|
||||||
<foreignkeys>
|
<foreignkeys>
|
||||||
|
@@ -1885,10 +1885,10 @@
|
|||||||
</columns>
|
</columns>
|
||||||
<primarykey name="PRIMARY">
|
<primarykey name="PRIMARY">
|
||||||
<columnnames>
|
<columnnames>
|
||||||
<columnname order="3">list_index</columnname>
|
|
||||||
<columnname order="4">locale_id</columnname>
|
|
||||||
<columnname order="1">node_id</columnname>
|
<columnname order="1">node_id</columnname>
|
||||||
<columnname order="2">qname_id</columnname>
|
<columnname order="2">qname_id</columnname>
|
||||||
|
<columnname order="3">list_index</columnname>
|
||||||
|
<columnname order="4">locale_id</columnname>
|
||||||
</columnnames>
|
</columnnames>
|
||||||
</primarykey>
|
</primarykey>
|
||||||
<foreignkeys>
|
<foreignkeys>
|
||||||
@@ -2174,9 +2174,9 @@
|
|||||||
</columns>
|
</columns>
|
||||||
<primarykey name="PRIMARY">
|
<primarykey name="PRIMARY">
|
||||||
<columnnames>
|
<columnnames>
|
||||||
|
<columnname order="1">root_prop_id</columnname>
|
||||||
<columnname order="2">contained_in</columnname>
|
<columnname order="2">contained_in</columnname>
|
||||||
<columnname order="3">prop_index</columnname>
|
<columnname order="3">prop_index</columnname>
|
||||||
<columnname order="1">root_prop_id</columnname>
|
|
||||||
</columnnames>
|
</columnnames>
|
||||||
</primarykey>
|
</primarykey>
|
||||||
<foreignkeys>
|
<foreignkeys>
|
||||||
@@ -2543,8 +2543,8 @@
|
|||||||
</columns>
|
</columns>
|
||||||
<primarykey name="PRIMARY">
|
<primarykey name="PRIMARY">
|
||||||
<columnnames>
|
<columnnames>
|
||||||
<columnname order="2">node_id</columnname>
|
|
||||||
<columnname order="1">user_node_id</columnname>
|
<columnname order="1">user_node_id</columnname>
|
||||||
|
<columnname order="2">node_id</columnname>
|
||||||
</columnnames>
|
</columnnames>
|
||||||
</primarykey>
|
</primarykey>
|
||||||
<foreignkeys>
|
<foreignkeys>
|
||||||
|
Reference in New Issue
Block a user