31
27
* @param writer writer the output should be written to
32
28
* @param arguments object containing arguments settings
34
public static void createDiff(
35
final PrintWriter writer,
36
final PgDiffArguments arguments) {
40
PgDumpLoader.loadDatabaseSchema(arguments.getOldDumpFile(),
41
arguments.getInCharsetName()),
42
PgDumpLoader.loadDatabaseSchema(arguments.getNewDumpFile(),
43
arguments.getInCharsetName()));
30
public static void createDiff(final PrintWriter writer,
31
final PgDiffArguments arguments) {
32
diffDatabaseSchemas(writer, arguments,
33
PgDumpLoader.loadDatabaseSchema(arguments.getOldDumpFile(),
34
arguments.getInCharsetName()),
35
PgDumpLoader.loadDatabaseSchema(arguments.getNewDumpFile(),
36
arguments.getInCharsetName()));
53
46
* @param newInputStream input stream of file containing dump of the new
56
public static void createDiff(
57
final PrintWriter writer,
58
final PgDiffArguments arguments,
59
final InputStream oldInputStream,
60
final InputStream newInputStream) {
64
PgDumpLoader.loadDatabaseSchema(oldInputStream, arguments.
66
PgDumpLoader.loadDatabaseSchema(newInputStream, arguments.
49
public static void createDiff(final PrintWriter writer,
50
final PgDiffArguments arguments, final InputStream oldInputStream,
51
final InputStream newInputStream) {
52
diffDatabaseSchemas(writer, arguments,
53
PgDumpLoader.loadDatabaseSchema(
54
oldInputStream, arguments.getInCharsetName()),
55
PgDumpLoader.loadDatabaseSchema(
56
newInputStream, arguments.getInCharsetName()));
75
64
* @param oldDatabase original database schema
76
65
* @param newDatabase new database schema
78
private static void createNewSchemas(
79
final PrintWriter writer,
80
final PgDiffArguments arguments,
81
final PgDatabase oldDatabase,
82
final PgDatabase newDatabase) {
83
for (PgSchema newSchema : newDatabase.getSchemas()) {
67
private static void createNewSchemas(final PrintWriter writer,
68
final PgDiffArguments arguments, final PgDatabase oldDatabase,
69
final PgDatabase newDatabase) {
70
for (final PgSchema newSchema : newDatabase.getSchemas()) {
84
71
if (oldDatabase.getSchema(newSchema.getName()) == null) {
87
newSchema.getCreationSQL(arguments.isQuoteNames()));
73
writer.println(newSchema.getCreationSQL(
74
arguments.isQuoteNames()));
124
109
* @param oldDatabase original database schema
125
110
* @param newDatabase new database schema
127
private static void dropOldSchemas(
128
final PrintWriter writer,
129
final PgDiffArguments arguments,
130
final PgDatabase oldDatabase,
131
final PgDatabase newDatabase) {
132
for (PgSchema oldSchema : oldDatabase.getSchemas()) {
112
private static void dropOldSchemas(final PrintWriter writer,
113
final PgDiffArguments arguments, final PgDatabase oldDatabase,
114
final PgDatabase newDatabase) {
115
for (final PgSchema oldSchema : oldDatabase.getSchemas()) {
133
116
if (newDatabase.getSchema(oldSchema.getName()) == null) {
134
117
writer.println();
136
"DROP SCHEMA " + PgDiffUtils.getQuotedName(
138
arguments.isQuoteNames()) + " CASCADE;");
118
writer.println("DROP SCHEMA "
119
+ PgDiffUtils.getQuotedName(oldSchema.getName(),
120
arguments.isQuoteNames()) + " CASCADE;");
148
130
* @param oldDatabase original database schema
149
131
* @param newDatabase new database schema
151
private static void updateSchemas(
152
final PrintWriter writer,
153
final PgDiffArguments arguments,
154
final PgDatabase oldDatabase,
155
final PgDatabase newDatabase) {
156
final boolean setSearchPath =
157
(newDatabase.getSchemas().size() > 1) || !newDatabase.getSchemas().
158
get(0).getName().equals("public");
133
private static void updateSchemas(final PrintWriter writer,
134
final PgDiffArguments arguments, final PgDatabase oldDatabase,
135
final PgDatabase newDatabase) {
136
final boolean setSearchPath = (newDatabase.getSchemas().size() > 1)
137
|| !newDatabase.getSchemas().
138
get(0).getName().equals("public");
160
for (PgSchema newSchema : newDatabase.getSchemas()) {
140
for (final PgSchema newSchema : newDatabase.getSchemas()) {
161
141
if (setSearchPath) {
162
142
writer.println();
164
"SET search_path = " + PgDiffUtils.getQuotedName(
166
arguments.isQuoteNames()) + ", pg_catalog;");
143
writer.println("SET search_path = "
144
+ PgDiffUtils.getQuotedName(newSchema.getName(),
145
arguments.isQuoteNames()) + ", pg_catalog;");
169
148
final PgSchema oldSchema =
170
oldDatabase.getSchema(newSchema.getName());
171
PgDiffFunctions.diffFunctions(writer, arguments, oldSchema,
149
oldDatabase.getSchema(newSchema.getName());
151
PgDiffFunctions.dropFunctions(
152
writer, arguments, oldSchema, newSchema);
153
PgDiffTriggers.dropTriggers(
154
writer, arguments, oldSchema, newSchema);
155
PgDiffFunctions.createFunctions(
156
writer, arguments, oldSchema, newSchema);
173
157
PgDiffViews.dropViews(writer, arguments, oldSchema, newSchema);
174
PgDiffSequences.diffSequences(
179
PgDiffTables.diffTables(writer, arguments, oldSchema, newSchema);
180
PgDiffConstraints.diffConstraints(
186
PgDiffConstraints.diffConstraints(
192
PgDiffIndexes.diffIndexes(writer, arguments, oldSchema, newSchema);
193
PgDiffTables.diffClusters(writer, arguments, oldSchema, newSchema);
194
PgDiffTriggers.diffTriggers(
158
PgDiffConstraints.dropConstraints(
159
writer, arguments, oldSchema, newSchema, true);
160
PgDiffConstraints.dropConstraints(
161
writer, arguments, oldSchema, newSchema, false);
162
PgDiffIndexes.dropIndexes(writer, arguments, oldSchema, newSchema);
163
PgDiffTables.dropClusters(writer, arguments, oldSchema, newSchema);
164
PgDiffTables.dropTables(writer, arguments, oldSchema, newSchema);
165
PgDiffSequences.dropSequences(
166
writer, arguments, oldSchema, newSchema);
168
PgDiffSequences.createSequences(
169
writer, arguments, oldSchema, newSchema);
170
PgDiffSequences.alterSequences(
171
writer, arguments, oldSchema, newSchema);
172
PgDiffTables.createTables(writer, arguments, oldSchema, newSchema);
173
PgDiffTables.alterTables(writer, arguments, oldSchema, newSchema);
174
PgDiffConstraints.createConstraints(
175
writer, arguments, oldSchema, newSchema, true);
176
PgDiffConstraints.createConstraints(
177
writer, arguments, oldSchema, newSchema, false);
178
PgDiffIndexes.createIndexes(
179
writer, arguments, oldSchema, newSchema);
180
PgDiffTables.createClusters(
181
writer, arguments, oldSchema, newSchema);
182
PgDiffTriggers.createTriggers(
183
writer, arguments, oldSchema, newSchema);
199
184
PgDiffViews.createViews(writer, arguments, oldSchema, newSchema);