dbeatty10 / dbt-mysql

dbt-mysql contains all of the code enabling dbt to work with MySQL and MariaDB
Apache License 2.0
76 stars 53 forks source link

Test with current versions of MariaDB #32

Closed dbeatty10 closed 2 years ago

dbeatty10 commented 3 years ago

Attempt

I did a quick tests of MariaDB 10.5 (with both dbt 0.19.0rc1 and 0.18.1) using the mysql-connector-python driver.

Result

Neither worked out-of-the-box.

Next steps

The best move might be to give MariaDB a stand-alone GitHub repository.

An alternative would be keep it within the dbt-mysql package, but create a separate mariadb adapter.

Either way, we'll probably need to install the mariadb package from PyPi.

dbeatty10 commented 3 years ago

This MariaDB bug is a bit of a show-stopper. It will affect any ephemeral models used within a view.

"A fix for this bug was pushed into 10.2", but I'm not sure if this fix has made it into any public releases by MariaDB yet.

dbeatty10 commented 3 years ago

From 2021-02-22: MariaDB 10.5.9, 10.4.18, 10.3.28 and 10.2.37 now available.

This should fix this bug: image

antoniopaisfernandes commented 2 years ago

Hi @dbeatty10!

Sorry 🤷‍♂️ for troubling you. If you know, can you share your plans about MariaDB? It is going in the dbt-mariadb direction or integrating in dbt-mysql?

Best regards

dbeatty10 commented 2 years ago

No trouble at all, @antoniopaisfernandes!

For now, the easiest approach is to keep it within the dbt-mysql package, but create a separate mariadb adapter. This work is completed now, and it will be included in the next release 🎉

This decision is not a one-way door, and we still preserve the option to change direction in the future (see "Future options" below).

Potential gotachas with the mariadb adapter

The integration tests for snapshots aren't passing yet. It might be related to this issue. So snapshots may or may not work for you right now.

Future options

  1. Keep it within the dbt-mysql package
  2. Stand-alone GitHub repository for MariaDB
    • Even right now, anyone could fork this project and then install their fork via these instructions.