embulk-output-mysql 0.7.12 → 0.7.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +3 -0
- data/build.gradle +1 -0
- data/classpath/embulk-output-jdbc-0.7.13.jar +0 -0
- data/classpath/embulk-output-mysql-0.7.13.jar +0 -0
- data/{classpath → default_jdbc_driver}/mysql-connector-java-5.1.34.jar +0 -0
- data/src/main/java/org/embulk/output/MySQLOutputPlugin.java +6 -0
- data/src/main/java/org/embulk/output/mysql/MySQLOutputConnector.java +3 -8
- data/src/test/java/org/embulk/output/mysql/CreateTableTest.java +79 -0
- data/src/test/resources/org/embulk/output/mysql/test/expect/create_table/setup.sql +1 -0
- data/src/test/resources/org/embulk/output/mysql/test/expect/create_table/test1.csv +4 -0
- data/src/test/resources/org/embulk/output/mysql/test/expect/create_table/test_table_constraint.yml +5 -0
- data/src/test/resources/org/embulk/output/mysql/test/expect/create_table/test_table_constraint_expected.csv +3 -0
- data/src/test/resources/org/embulk/output/mysql/test/expect/create_table/test_table_option.yml +5 -0
- data/src/test/resources/org/embulk/output/mysql/test/expect/create_table/test_table_option_expected.csv +3 -0
- metadata +12 -5
- data/classpath/embulk-output-jdbc-0.7.12.jar +0 -0
- data/classpath/embulk-output-mysql-0.7.12.jar +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cc3ab6f3a5bfb39779736584783e384b4decd8c8
|
4
|
+
data.tar.gz: 2288573b82a2e38062a5315ac0e0035838af84b0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fd5382b3fd1051adc59d959c5f0d1ad0b39e2f4801d32a1879942035ebf01a74e375f4b2e856722885d070e03389ba6fd440b86f16f115a51554d1a79aa83708
|
7
|
+
data.tar.gz: 14f2a76d0917eb363a988eb7ee0384c302222d0a2eb71ac34435f89b488954c2aa20999cd1c03ea751bafc602d902628ff1bd533cd41dbc478bf3821e3a1523d
|
data/README.md
CHANGED
@@ -10,6 +10,7 @@ MySQL output plugin for Embulk loads records to MySQL.
|
|
10
10
|
|
11
11
|
## Configuration
|
12
12
|
|
13
|
+
- **driver_path**: path to the jar file of the MySQL JDBC driver. If not set, the bundled JDBC driver (MySQL Connector/J 5.1.34) will be used. (string)
|
13
14
|
- **host**: database host name (string, required)
|
14
15
|
- **port**: database port number (integer, default: 3306)
|
15
16
|
- **user**: database login user name (string, required)
|
@@ -18,6 +19,8 @@ MySQL output plugin for Embulk loads records to MySQL.
|
|
18
19
|
- **database**: destination database name (string, required)
|
19
20
|
- **temp_database**: database name for intermediate tables. by default, intermediate tables will be created in the database specified by `database`. (string, optional)
|
20
21
|
- **table**: destination table name (string, required)
|
22
|
+
- **create_table_constraint** table constraint added to `CREATE TABLE` statement, like `CREATE TABLE <table_name> (<column1> <type1>, <column2> <type2>, ..., <create_table_constraint>) <create_table_option>`.
|
23
|
+
- **create_table_option** table option added to `CREATE TABLE` statement, like `CREATE TABLE <table_name> (<column1> <type1>, <column2> <type2>, ..., <create_table_constraint>) <create_table_option>`.
|
21
24
|
- **options**: extra connection properties (hash, default: {})
|
22
25
|
- **retry_limit** max retry count for database operations (integer, default: 12)
|
23
26
|
- **retry_wait** initial retry wait time in milliseconds (integer, default: 1000 (1 second))
|
data/build.gradle
CHANGED
Binary file
|
Binary file
|
File without changes
|
@@ -25,6 +25,10 @@ public class MySQLOutputPlugin
|
|
25
25
|
public interface MySQLPluginTask
|
26
26
|
extends PluginTask
|
27
27
|
{
|
28
|
+
@Config("driver_path")
|
29
|
+
@ConfigDefault("null")
|
30
|
+
public Optional<String> getDriverPath();
|
31
|
+
|
28
32
|
@Config("host")
|
29
33
|
public String getHost();
|
30
34
|
|
@@ -71,6 +75,8 @@ public class MySQLOutputPlugin
|
|
71
75
|
{
|
72
76
|
MySQLPluginTask t = (MySQLPluginTask) task;
|
73
77
|
|
78
|
+
loadDriver("com.mysql.jdbc.Driver", t.getDriverPath());
|
79
|
+
|
74
80
|
String url = String.format("jdbc:mysql://%s:%d/%s",
|
75
81
|
t.getHost(), t.getPort(), t.getDatabase());
|
76
82
|
|
@@ -1,25 +1,20 @@
|
|
1
1
|
package org.embulk.output.mysql;
|
2
2
|
|
3
3
|
import java.util.Properties;
|
4
|
-
import java.sql.Driver;
|
5
4
|
import java.sql.Connection;
|
5
|
+
import java.sql.DriverManager;
|
6
6
|
import java.sql.SQLException;
|
7
|
+
|
7
8
|
import org.embulk.output.jdbc.JdbcOutputConnector;
|
8
9
|
|
9
10
|
public class MySQLOutputConnector
|
10
11
|
implements JdbcOutputConnector
|
11
12
|
{
|
12
|
-
private final Driver driver;
|
13
13
|
private final String url;
|
14
14
|
private final Properties properties;
|
15
15
|
|
16
16
|
public MySQLOutputConnector(String url, Properties properties)
|
17
17
|
{
|
18
|
-
try {
|
19
|
-
this.driver = new com.mysql.jdbc.Driver(); // new com.mysql.jdbc.Driver throws SQLException
|
20
|
-
} catch (SQLException ex) {
|
21
|
-
throw new RuntimeException(ex);
|
22
|
-
}
|
23
18
|
this.url = url;
|
24
19
|
this.properties = properties;
|
25
20
|
}
|
@@ -27,7 +22,7 @@ public class MySQLOutputConnector
|
|
27
22
|
@Override
|
28
23
|
public MySQLOutputConnection connect(boolean autoCommit) throws SQLException
|
29
24
|
{
|
30
|
-
Connection c =
|
25
|
+
Connection c = DriverManager.getConnection(url, properties);
|
31
26
|
try {
|
32
27
|
MySQLOutputConnection con = new MySQLOutputConnection(c, autoCommit);
|
33
28
|
c = null;
|
@@ -0,0 +1,79 @@
|
|
1
|
+
package org.embulk.output.mysql;
|
2
|
+
|
3
|
+
import static org.embulk.output.mysql.MySQLTests.execute;
|
4
|
+
import static org.embulk.output.mysql.MySQLTests.selectRecords;
|
5
|
+
import static org.hamcrest.Matchers.is;
|
6
|
+
import static org.junit.Assert.assertThat;
|
7
|
+
|
8
|
+
import java.io.File;
|
9
|
+
import java.net.URISyntaxException;
|
10
|
+
import java.net.URL;
|
11
|
+
import java.nio.file.FileSystems;
|
12
|
+
import java.nio.file.Path;
|
13
|
+
|
14
|
+
import org.embulk.config.ConfigDiff;
|
15
|
+
import org.embulk.config.ConfigSource;
|
16
|
+
import org.embulk.output.MySQLOutputPlugin;
|
17
|
+
import org.embulk.spi.OutputPlugin;
|
18
|
+
import org.embulk.test.EmbulkTests;
|
19
|
+
import org.embulk.test.TestingEmbulk;
|
20
|
+
import org.junit.Before;
|
21
|
+
import org.junit.Rule;
|
22
|
+
import org.junit.Test;
|
23
|
+
|
24
|
+
import com.google.common.io.Resources;
|
25
|
+
|
26
|
+
public class CreateTableTest
|
27
|
+
{
|
28
|
+
private static final String BASIC_RESOURCE_PATH = "org/embulk/output/mysql/test/expect/create_table/";
|
29
|
+
|
30
|
+
private static ConfigSource loadYamlResource(TestingEmbulk embulk, String fileName)
|
31
|
+
{
|
32
|
+
return embulk.loadYamlResource(BASIC_RESOURCE_PATH + fileName);
|
33
|
+
}
|
34
|
+
|
35
|
+
private static String readResource(String fileName)
|
36
|
+
{
|
37
|
+
return EmbulkTests.readResource(BASIC_RESOURCE_PATH + fileName);
|
38
|
+
}
|
39
|
+
|
40
|
+
@Rule
|
41
|
+
public TestingEmbulk embulk = TestingEmbulk.builder()
|
42
|
+
.registerPlugin(OutputPlugin.class, "mysql", MySQLOutputPlugin.class)
|
43
|
+
.build();
|
44
|
+
|
45
|
+
private ConfigSource baseConfig;
|
46
|
+
|
47
|
+
@Before
|
48
|
+
public void setup()
|
49
|
+
{
|
50
|
+
baseConfig = MySQLTests.baseConfig();
|
51
|
+
execute(readResource("setup.sql")); // setup rows
|
52
|
+
}
|
53
|
+
|
54
|
+
@Test
|
55
|
+
public void testTableOption() throws Exception
|
56
|
+
{
|
57
|
+
Path in1 = toPath("test1.csv");
|
58
|
+
TestingEmbulk.RunResult result1 = embulk.runOutput(baseConfig.merge(loadYamlResource(embulk, "test_table_option.yml")), in1);
|
59
|
+
assertThat(selectRecords(embulk, "test1"), is(readResource("test_table_option_expected.csv")));
|
60
|
+
//assertThat(result1.getConfigDiff(), is((ConfigDiff) loadYamlResource(embulk, "test_expected.diff")));
|
61
|
+
}
|
62
|
+
|
63
|
+
@Test
|
64
|
+
public void testTableConstraint() throws Exception
|
65
|
+
{
|
66
|
+
Path in1 = toPath("test1.csv");
|
67
|
+
// exception will be thrown without table constraint because auto column must be defined as a key.
|
68
|
+
TestingEmbulk.RunResult result1 = embulk.runOutput(baseConfig.merge(loadYamlResource(embulk, "test_table_constraint.yml")), in1);
|
69
|
+
assertThat(selectRecords(embulk, "test1"), is(readResource("test_table_constraint_expected.csv")));
|
70
|
+
//assertThat(result1.getConfigDiff(), is((ConfigDiff) loadYamlResource(embulk, "test_expected.diff")));
|
71
|
+
}
|
72
|
+
|
73
|
+
private Path toPath(String fileName) throws URISyntaxException
|
74
|
+
{
|
75
|
+
URL url = Resources.getResource(BASIC_RESOURCE_PATH + fileName);
|
76
|
+
return FileSystems.getDefault().getPath(new File(url.toURI()).getAbsolutePath());
|
77
|
+
}
|
78
|
+
|
79
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
drop table if exists test1;
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: embulk-output-mysql
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sadayuki Furuhashi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-12-08 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Inserts or updates records to a table.
|
14
14
|
email:
|
@@ -19,9 +19,9 @@ extra_rdoc_files: []
|
|
19
19
|
files:
|
20
20
|
- README.md
|
21
21
|
- build.gradle
|
22
|
-
- classpath/embulk-output-jdbc-0.7.
|
23
|
-
- classpath/embulk-output-mysql-0.7.
|
24
|
-
-
|
22
|
+
- classpath/embulk-output-jdbc-0.7.13.jar
|
23
|
+
- classpath/embulk-output-mysql-0.7.13.jar
|
24
|
+
- default_jdbc_driver/mysql-connector-java-5.1.34.jar
|
25
25
|
- lib/embulk/output/mysql.rb
|
26
26
|
- src/main/java/org/embulk/output/MySQLOutputPlugin.java
|
27
27
|
- src/main/java/org/embulk/output/MySQLTimeZoneComparison.java
|
@@ -30,6 +30,7 @@ files:
|
|
30
30
|
- src/main/java/org/embulk/output/mysql/MySQLOutputConnector.java
|
31
31
|
- src/test/java/org/embulk/output/mysql/AfterLoadTest.java
|
32
32
|
- src/test/java/org/embulk/output/mysql/BeforeLoadTest.java
|
33
|
+
- src/test/java/org/embulk/output/mysql/CreateTableTest.java
|
33
34
|
- src/test/java/org/embulk/output/mysql/MySQLTests.java
|
34
35
|
- src/test/resources/org/embulk/output/mysql/test/expect/after_load/setup.sql
|
35
36
|
- src/test/resources/org/embulk/output/mysql/test/expect/after_load/test1.csv
|
@@ -55,6 +56,12 @@ files:
|
|
55
56
|
- src/test/resources/org/embulk/output/mysql/test/expect/before_load/test_merge_direct_before_load.yml
|
56
57
|
- src/test/resources/org/embulk/output/mysql/test/expect/before_load/test_truncate_insert_before_load.yml
|
57
58
|
- src/test/resources/org/embulk/output/mysql/test/expect/before_load/test_truncate_insert_before_load_expected.csv
|
59
|
+
- src/test/resources/org/embulk/output/mysql/test/expect/create_table/setup.sql
|
60
|
+
- src/test/resources/org/embulk/output/mysql/test/expect/create_table/test1.csv
|
61
|
+
- src/test/resources/org/embulk/output/mysql/test/expect/create_table/test_table_constraint.yml
|
62
|
+
- src/test/resources/org/embulk/output/mysql/test/expect/create_table/test_table_constraint_expected.csv
|
63
|
+
- src/test/resources/org/embulk/output/mysql/test/expect/create_table/test_table_option.yml
|
64
|
+
- src/test/resources/org/embulk/output/mysql/test/expect/create_table/test_table_option_expected.csv
|
58
65
|
homepage: https://github.com/embulk/embulk-output-jdbc
|
59
66
|
licenses:
|
60
67
|
- Apache 2.0
|
Binary file
|
Binary file
|