dbcrossbar
: Copy tabular data between databases, CSV files and cloud storage
dbcrossbar
moves large data sets between different databases and storage formats.
Some examples:
# Copy from a CSV file to a PostgreSQL table.
# Upsert from a PostgreSQL table to BigQuery.
It can also convert between table schema formats, including PostgreSQL CREATE TABLE
statements and BigQuery JSON schemas:
# Convert a PostgreSQL `CREATE TABLE` statement to a BigQuery JSON schema.
# Extract a schema from a CSV file and convert to Postgres `CREATE TABLE`.
For more information, see the documentation.
Contributing
For more instructions about building dbcrossbar
, running tests, and contributing code, see CONTRIBUTING.md.
We require nightly Rust. We lock a specific version of nightly Rust using the rust-toolchain
file. If you want to update this, take a look at Rustup components history and choose the newest version with support for rls
, clippy
and rustfmt
.
Running integration tests
You can run the regular test suite with cargo test
, but to run the full integration tests, you'll need to do the following:
# Run a local PostgreSQL on port 5432.
|
|
|
# Point to test databases and test buckets.
# This helps to ensure that we're not depending on our users to have set
# a default gcloud project anywhere.
# These can be omitted if you don't want to test Redshift.
# Needed for BigML. Does not work with AWS_SESSION_TOKEN.
# Run the integration tests.
License
Licensed under either of:
- Apache License, Version 2.0, (LICENSE-APACHE.txt or on the web)
- MIT license (LICENSE-MIT.txt or on the web)
...at your option.
Contributions
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above without any additional terms or conditions.
Third-party libraries
dbcrossbar
depends on a variety of third-party libraries, each with their own copyright and license. We have configured a deny.toml
file that currently attempts to restrict our dependencies to MIT, Apache-2.0, BSD-3-Clause, BSD-2-Clause, CC0-1.0, ISC, OpenSSL and Zlib licenses, with a single MPL-2.0 dependency. But please verify the deny.toml
file (and individual dependencies) to be certain, because details may change in the future. Each of these licenses imposes certain obligations on redistribution.