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
|
||||
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"
|
||||
# if: commit_message !~ /\[skip db\]/
|
||||
# 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 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
|
||||
- name: "Repository - MySQL 8 tests"
|
||||
if: commit_message !~ /\[skip db\]/
|
||||
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 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
|
||||
|
||||
- name: "Repository - PostgreSQL 10.9 tests"
|
||||
if: commit_message !~ /\[skip db\]/
|
||||
|
@@ -32,8 +32,12 @@ import java.sql.DatabaseMetaData;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.TreeMap;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
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.service.descriptor.Descriptor;
|
||||
import org.alfresco.service.descriptor.DescriptorService;
|
||||
import org.alfresco.util.DBScriptUtil;
|
||||
import org.alfresco.util.DatabaseMetaDataHelper;
|
||||
import org.alfresco.util.DialectUtil;
|
||||
import org.alfresco.util.PropertyCheck;
|
||||
import org.alfresco.util.DBScriptUtil;
|
||||
import org.alfresco.util.schemacomp.model.Column;
|
||||
import org.alfresco.util.schemacomp.model.ForeignKey;
|
||||
import org.alfresco.util.schemacomp.model.Index;
|
||||
@@ -257,6 +261,7 @@ public class ExportDb
|
||||
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);
|
||||
|
||||
processTables(dbmd, tables);
|
||||
@@ -331,10 +336,11 @@ public class ExportDb
|
||||
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);
|
||||
|
||||
PrimaryKey pk = null;
|
||||
Map<Integer, String> keySeqsAndColumnNames = new LinkedHashMap<>();
|
||||
|
||||
while (primarykeycols.next())
|
||||
{
|
||||
@@ -343,12 +349,23 @@ public class ExportDb
|
||||
String pkName = primarykeycols.getString("PK_NAME");
|
||||
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");
|
||||
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();
|
||||
|
||||
// If this table has a primary key, add it.
|
||||
|
@@ -898,8 +898,8 @@
|
||||
</columns>
|
||||
<primarykey name="PRIMARY">
|
||||
<columnnames>
|
||||
<columnname order="2">GROUP_ID_</columnname>
|
||||
<columnname order="1">USER_ID_</columnname>
|
||||
<columnname order="2">GROUP_ID_</columnname>
|
||||
</columnnames>
|
||||
</primarykey>
|
||||
<foreignkeys>
|
||||
|
@@ -1885,10 +1885,10 @@
|
||||
</columns>
|
||||
<primarykey name="PRIMARY">
|
||||
<columnnames>
|
||||
<columnname order="3">list_index</columnname>
|
||||
<columnname order="4">locale_id</columnname>
|
||||
<columnname order="1">node_id</columnname>
|
||||
<columnname order="2">qname_id</columnname>
|
||||
<columnname order="3">list_index</columnname>
|
||||
<columnname order="4">locale_id</columnname>
|
||||
</columnnames>
|
||||
</primarykey>
|
||||
<foreignkeys>
|
||||
@@ -2174,9 +2174,9 @@
|
||||
</columns>
|
||||
<primarykey name="PRIMARY">
|
||||
<columnnames>
|
||||
<columnname order="1">root_prop_id</columnname>
|
||||
<columnname order="2">contained_in</columnname>
|
||||
<columnname order="3">prop_index</columnname>
|
||||
<columnname order="1">root_prop_id</columnname>
|
||||
</columnnames>
|
||||
</primarykey>
|
||||
<foreignkeys>
|
||||
@@ -2543,8 +2543,8 @@
|
||||
</columns>
|
||||
<primarykey name="PRIMARY">
|
||||
<columnnames>
|
||||
<columnname order="2">node_id</columnname>
|
||||
<columnname order="1">user_node_id</columnname>
|
||||
<columnname order="2">node_id</columnname>
|
||||
</columnnames>
|
||||
</primarykey>
|
||||
<foreignkeys>
|
||||
|
Reference in New Issue
Block a user