1 | |
package liquibase.snapshot; |
2 | |
|
3 | |
import liquibase.database.Database; |
4 | |
import liquibase.database.AbstractDatabase; |
5 | |
import liquibase.database.structure.Table; |
6 | |
import liquibase.database.structure.Column; |
7 | |
import liquibase.database.structure.ForeignKey; |
8 | |
import liquibase.diff.DiffStatusListener; |
9 | |
import liquibase.exception.DatabaseException; |
10 | |
import liquibase.servicelocator.PrioritizedService; |
11 | |
|
12 | |
import java.util.Set; |
13 | |
import java.util.List; |
14 | |
|
15 | |
public interface DatabaseSnapshotGenerator { |
16 | |
|
17 | |
|
18 | |
|
19 | |
public static final int PRIORITY_DEFAULT = 1; |
20 | |
|
21 | |
|
22 | |
|
23 | |
|
24 | |
public static final int PRIORITY_DATABASE = 5; |
25 | |
|
26 | |
boolean supports(Database database); |
27 | |
|
28 | |
int getPriority(Database database); |
29 | |
|
30 | |
DatabaseSnapshot createSnapshot(Database database, String schema, Set<DiffStatusListener> listeners) |
31 | |
throws DatabaseException; |
32 | |
|
33 | |
Table getDatabaseChangeLogTable(Database database) throws DatabaseException; |
34 | |
|
35 | |
Table getDatabaseChangeLogLockTable(Database database) throws DatabaseException; |
36 | |
|
37 | |
Table getTable(String schemaName, String tableName, Database database) throws DatabaseException; |
38 | |
|
39 | |
Column getColumn(String schemaName, String tableName, String columnName, Database database) |
40 | |
throws DatabaseException; |
41 | |
|
42 | |
ForeignKey getForeignKeyByForeignKeyTable(String schemaName, String tableName, String fkName, Database database) |
43 | |
throws DatabaseException; |
44 | |
|
45 | |
List<ForeignKey> getForeignKeys(String schemaName, String tableName, Database database) throws DatabaseException; |
46 | |
|
47 | |
boolean hasIndex(String schemaName, String tableName, String indexName, Database database, String columnNames) |
48 | |
throws DatabaseException; |
49 | |
|
50 | |
boolean hasDatabaseChangeLogTable(Database database); |
51 | |
|
52 | |
boolean hasDatabaseChangeLogLockTable(Database database); |
53 | |
|
54 | |
public boolean hasTable(String schemaName, String tableName, Database database); |
55 | |
|
56 | |
public boolean hasView(String schemaName, String viewName, Database database); |
57 | |
} |