timescale / outflux

Export data from InfluxDB to TimescaleDB
Apache License 2.0
86 stars 22 forks source link

A migration error occurred when additionally migrating Influx Data containing a boolean type. #64

Closed K-Iwatani closed 4 years ago

K-Iwatani commented 4 years ago

A migration error occurred when additionally migrating Influx Data containing a boolean type.

The following measurements from InfluxDB were used. name: kensho001

fieldKey fieldType
test_bool boolean
test_float float
test_int integer
test_string string

procedure:

  1. Create an empty table kensho001 in PostgreSQL.
  2. Data was transferred to kensho001 with Outflux. → Successful migration
2019/08/02 10:37:31 All pipelines scheduled
2019/08/02 10:37:31 Overriding PG environment variables for connection with: user=postgres password=postgres host=xxx.xxx.xxx.xxx  port=5432 dbname=postgres
2019/08/02 10:37:31 pipe_kensho001 starting execution
2019/08/02 10:37:31 Discovering influx schema for measurement: kensho001
2019/08/02 10:37:31 Discovered: DataSet { Name: kensho001, Columns: [Column { Name: time, DataType: IDRFTimestamp} Column { Name: product_no, DataType: String} Column { Name: test_bool, DataType;  Boolean} Column { Name: test_float, DataType: Double} Column { Name: test_int, DataType: Integer64} Column { Name: test_string, DataType: String}], Time Column: time }
2019/08/02 10:37:31 Selected Schema Strategy: CreateIfMissing
2019/08/02 10:37:31 CreateIfMissing strategy: Table kensho001 does not exist. Creating
2019/08/02 10:37:31 Creating table with:
 CREATE TABLE "kensho001"("time" TIMESTAMP, "product_no" TEXT, "test_bool" BOOLEAN, "test_float" FLOAT, "test_int" BIGINT, "test_string" TEXT)
2019/08/02 10:37:31 Preparing TimescaleDB extension:
CREATE EXTENSION IF NOT EXISTS timescaledb
2019/08/02 10:37:31 Creating hypertable with: SELECT create_hypertable('"kensho001"', 'time');
2019/08/02 10:37:31 Installation metadata table doesn't exist in this TimescaleDB version
2019/08/02 10:37:31 Starting extractor 'pipe_kensho001_ext' for measure: kensho001
2019/08/02 10:37:31 pipe_kensho001_ext: Extracting data from database 'testdb'
2019/08/02 10:37:31 pipe_kensho001_ext: SELECT "time", "product_no", "test_bool", "test_float", "test_int", "test_string" FROM "autogen"."kensho001" WHERE time >= '2019-08-02T01:35:17.512358912Z' AND  time <= '2019-08-02T01:35:17.512358912Z'
2019/08/02 10:37:31 pipe_kensho001_ext:Pulling chunks with size 15000
2019/08/02 10:37:31 Starting data ingestor 'pipe_kensho001_ing'
2019/08/02 10:37:31 Will batch insert 8000 rows at once. With commit strategy: CommitOnEachBatch
2019/08/02 10:37:31 pipe_kensho001_ext: Extracted 1 rows from Influx
2019/08/02 10:37:31 pipe_kensho001_ing: Complete. Inserted 1 rows.
2019/08/02 10:37:31 All pipelines finished
2019/08/02 10:37:31 Migration execution time: 0.066 seconds
  1. Added measurement data to kensho001. → Migration error
    2019/08/02 10:38:45 All pipelines scheduled
    2019/08/02 10:38:45 Overriding PG environment variables for connection with: user=postgres password=postgres host=xxx.xxx.xxx.xxx  port=5432 dbname=postgres
    2019/08/02 10:38:45 pipe_kensho001 starting execution
    2019/08/02 10:38:45 Discovering influx schema for measurement: kensho001
    2019/08/02 10:38:45 Discovered: DataSet { Name: kensho001, Columns: [Column { Name: time, DataType: IDRFTimestamp} Column { Name: product_no, DataType: String} Column { Name: test_bool, DataType: Boolean} Column { Name: test_float, DataType: Double} Column { Name: test_int, DataType: Integer64} Column { Name: test_string, DataType: String}], Time Column: time }
    2019/08/02 10:38:45 Selected Schema Strategy: CreateIfMissing
    2019/08/02 10:38:45 pipe_kensho001: pipe_kensho001: could not prepare ingestor
    existing table in target db is not compatible with required. Required column test_bool of type Boolean is not compatible with existing type Unknown
    2019/08/02 10:38:45 All pipelines finished
    2019/08/02 10:38:45 Migration execution time: 0.047 seconds
    2019/08/02 10:38:45 Migration finished with errors:
    pipe_kensho001: could not prepare ingestor
    existing table in target db is not compatible with required. Required column test_bool of type Boolean is not compatible with existing type Unknown
atanasovskib commented 4 years ago

Thanks for this report. Will issue a fix soon

atanasovskib commented 4 years ago

Fix is now in master. Will make a release soon