embulk-output-mysql 0.7.12 → 0.7.13
Sign up to get free protection for your applications and to get access to all the features.
- 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
|