You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+8-8Lines changed: 8 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,8 +5,8 @@ A lightweight Java library that allows cloning entity data from one PostgreSQL d
5
5
# Features:
6
6
-**Minimal external dependencies**. Only dependencies are the official PostgreSQL JDBC driver (`org.postgresql:postgresql`) and Apache Commons CSV (`org.apache.commons:commons-csv`)
7
7
-**Selective cloning**. Clone precisely the rows you want by specifying filters.
8
-
-**Repeatable cloning**. The cloning process is repeatable and will ensure only the clone rows exists for the specific entity without affecting other entities.
9
-
-**Graph-based configuration builder**. Define root table and their joins recursively with a builder pattern for type safety.
8
+
-**Repeatable cloning**. The cloning process is repeatable and will ensure only the cloned rows exist for the specific entity without affecting other entities.
9
+
-**Graph-based configuration builder**. Define root tables and their joins recursively with a builder pattern for type safety.
10
10
-**Streaming support**. Handle large imports and exports without memory overhead.
11
11
-**Minimal privileges**. Requires only SELECT and INSERT privileges on the target tables; no superuser or special permissions are needed.
12
12
-**Row Level Security support**. Clone data based on user permissions.
@@ -35,7 +35,7 @@ try (final var out = new ByteArrayOutputStream()) {
35
35
zipBytes = out.toByteArray();
36
36
}
37
37
38
-
// Import the data from the ZIP file to another environemnt
38
+
// Import the data from the ZIP file to another environment
39
39
try (finalvar in =newByteArrayInputStream(zipBytes)) {
- Join by join table foreign key: Where the foreign key is on the join table.
57
-
- Join by main table foreign key: Where the foreign key is on the main table.
58
-
- Join by matching value: Where both tables contain a common value.
56
+
- Join by joined table foreign key: where the foreign key is on the joined table.
57
+
- Join by main table foreign key: where the foreign key is on the main table.
58
+
- Join by matching columns: where both tables contain a common value.
59
59
60
60
The builder will automatically adjust the ordering of the inserts such that they are inserted in the correct order with the dependent tables being inserted after the table values they point to.
61
61
# Verifying the configuration
@@ -105,8 +105,8 @@ The project contains the following main Gradle modules:
105
105
-`example` a small example project that demonstrates how to use the library.
106
106
107
107
# Future work
108
-
There is currently no plans for further development.
108
+
There are currently no plans for further development.
109
109
110
110
This is a list of ideas that could be implemented:
111
111
- Support for automatic generation of the clone configuration based on the entity structure in Hibernate.
112
-
- Hibernate's meta model could be used to generate the configuration.
112
+
- Hibernate's meta model could be used to generate the configuration.
Copy file name to clipboardExpand all lines: example/README.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,9 +3,9 @@
3
3
This is an example project that demonstrates how to use the Cloner library in a Spring application.
4
4
5
5
It contains a small application where you can randomly generate data and move it manually through a downloaded ZIP file:
6
-

6
+

7
7
8
-
Although this example downloads and reuploads a ZIP file, it is recommended that two environment talk directly between each other to prevent data leaks.
8
+
Although this example downloads and reuploads a ZIP file, it is recommended that two environments talk directly between each other to prevent data leaks.
9
9
10
10
## Run the example
11
11
@@ -15,10 +15,10 @@ Start two databases with docker-compose:
15
15
16
16
This will host database1 on port 5432 and database2 on port 5434.
17
17
18
-
Start Example 1 with the builtin IntelliJ IDEA run configuration "Example 1" or the following command:
18
+
Start Example 1 with the built-in IntelliJ IDEA run configuration "Example 1" or the following command:
0 commit comments