- add entry point
mara.commands
(for mara-cli support)
- add cli group 'mara-db'. Mark old cli commands as deprecated (#74)
- fix typo in depreciation warn messages and add warn category
- fix JSONL data import into PostgreSQL db (#73)
- hotfix 🐛 issue with postgres cursor context (#72)
- the implementation of the formats option (#56) required to do changes to the functions in
mara_db.shell
. In case you defined custom implementations, you will have to adjust them.
- adding a functional API to get the DB-API 2.0 of a database (#71)
- add option to specify multiple formats like Parquet, Avro and ORC (#56, #64)
- refactor the internally used cursor context logic to a more generic one (#68, #71)
- a default database
mara
is not anymore defined (#67). - add deprecation warning when using parameter
timestamp
in query_command. This parameter will be removed in version 5.0. See #44.
- fix sqlalchemy_url for SQLServerDB
- fix UI error when requesting schema view for Azure Synapse databases (#48)
- when using BigQuery you need to rename the BigQueryDB db config parameter
service_account_private_key_file
toservice_account_json_file_name
(#45) - when using BigQuery with copy/read operations you need to specify parameter
gcloud_gcs_bucket_name
in the BigQueryDB db config (#45)
- Add Databricks db support (#62)
- Add Snowflake db support (#52/#61)
- Add sqlalchemy support for BigQuery (#45/#50)
- Add sqlalchemy support for SQL Server (#46)
- Add option to use either MSSQL Tools (sqlcmd/bcp) or sqsh to connect to SQL Server (#57)
- Add documentation readthedocs.io documentation (#59)
- Extend BigQuery functionality (#45)
- add extras per database engine (#50/#53). Postgres and Readshift is still included by default.
Note: It is recommended to always specifcy the extras for the database you use. - use client-side rendering for graphviz fallback (#51)
- add all package files in wheel
- a proper error is now thrown when the user tries to look at the schema of a BigQuery database
- Add BigQuery support
- Fix copy from PostgreSQLDB to BigQueryDB when delimiter_char is not set (#36)
- Add config default_echo_queries (#38)
- Add support for SQLServerDB port (#37)
- Fix exit command sequence when previous command has exit code not zero (#40)
- Escape double quotes in copy_from_sdtin_command for PostgreSQL (#33)
- Add overview page to visualization
required changes
If you use quotes in tables names in Copy
commands, check whether they still work.
- Don't escape dollar sign in queries for SqlServer
- Support echo sql queries for SqlServer
- Bugfix copy_to_stdout_command for SqlServerDB
required changes
If use SQL Server and have queries that contain the $
sign, then please escape that one manually.
- Show warning when graphviz is not installed
- Set fetch-count 10000 for the
copy_to_stdout_command
for PostgreSQLDB to handle out of memory error. - Add schema visualization support for SQL Server
- Set mssql severity level to 10 (#25)
- Implement
copy-from-sdtin
command for Redshift (via tmp file on configuratble s3 bucket) - Refactor database schema visualization so that multiple databases can be implemented
- Implement database schema visualization for MySQL
- Add function mysql.mysql_cursor_context for connecting to MySQL databases via https://github.com/PyMySQL/mysqlclient-python
- Allow to pass a dbs.PostgreSQLDB instance to postgresql.postgres_cursor_context
- Add travis integration and PyPi upload
- Add new parameters delimiter_char and csv_format to all copy command functions (allows for better quoting JSONS, arrays, strings with tabs)
- Add warnings for unused parameters
- Make code a bit more pep-8 compliant
required-changes
- Adapt own implementations of
copy_to_stdout_command
,copy_from_stdin_command
©_command
(add the two new parameters). - Test whether everything still works (has been working reliably in three big projects for 4 weeks now)
- Revert commit 422c332 (Fix pg to pg copy command for json data). It was causing too much trouble.
- Allow MARA_AUTOMIGRATE_SQLALCHEMY_MODELS to be a function (in order to improve import speed)
- Change MARA_XXX variables to functions to delay importing of imports
- Fix pg to pg copy command for json data
- Move some imports into the functions that use them in order to improve loading speed
- Remove dependency_links from setup.py to regain compatibility with recent pip versions
required changes
- Update
mara-app
to>=2.0.0
- Add oracle db access
- Add SSL standard parameters to PostgreSQL connection string
- Add missing footer parameter to Oracle copy to stdout command
- Change arguments for sqsh client to return non zero exitcode in error case
- Add single quotes around PostgreSQL passwords to prevent bash errors when the password contains certain characters
- Make graphviz engine in schema visualization selectable
- Implement Redshift DB
- Show enums in schema drawing for constrained tables
- Extend copy_to_stdout_command with "footer" argument for PostgreSQL DB
- Move sqlalchemy auto-migration from mara-app to mara-db
- Remove
config.mara_db_alias
function - Move function
sqlalchemy.postgres_cursor_context
to modulepostgresql
- Remove
sqlalchemy/session_context
context handler - Import graphviz only when needed
- Update / improve documentation
- Add port to sqlalchemy postgres connection string
- Extend copy_to_stdout_command with "header" argument
required changes
- Replace all occurrences of
mara_db.config.mara_db_alias()
with'mara'
- Replace
mara_db.sqlalchemy.postgres_cursor_context
withmara_db.postgresql.postgres_cursor_context
- Change all usages of
mara_db.sqlalchemy.session_context
to psycopg2 usingmara_db.postgresql.postgres_cursor_context
- Switch dependency links in setup.py from ssh to https
- Add psycopg2 as dependency
- add web ui for visualizing database schemas (postgres only currently)
- improve acl
- Fix bug in schema drawing
- Quote strings when copying from sqlite
- NULL value handling when copying from sqlite
- add SQLite support
- don't use sqlalchemy session in postgres_cursor_context because it creates to many setup queries on each instantiation
- always append ';\n\go' to queries against SQL Server
- remove default-character-set=utf8mb4 from My SQL queries
- change database configuration from sqalchemy urls to custom database specific classes
- create sqlalchemy session contexts from configuration objects
- add functions for creating shell commands for accessing databases
- add documentation
- bug fixes
- various smaller improvements in mara_db/shell.py
required changes
This version is pretty much incompatible with previous versions. See README.md for new usage patterns.
- Replace config function databases with database_urls
- Add functions for client command creation
required changes
- Change database configurations from
from sqlalchemy import engine
def databases() -> {str: engine.Engine}:
"""The list of database connections to use, by alias"""
return {'mara': engine.create_engine('postgresql+psycopg2://root@localhost/mara')}
to
import sqlalchemy.engine.url
def database_urls() -> {str: sqlalchemy.engine.url}:
"""The list of database connections to use, by alias"""
return {'mara': sqlalchemy.engine.url.make_url('postgresql+psycopg2://root@localhost/mara')}
- Initial version
- Minor bug fixes and code style issues