summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-06-20 03:36:41 +0000
committerCoprDistGit <infra@openeuler.org>2023-06-20 03:36:41 +0000
commit6ccfb36f98569119b6265e967f4e52fd6b79a335 (patch)
tree79811d193fd3eec2e57a8f8072ca12fa205e170c
parentd265f643ae068f8ef909f557b0cd74fc642ad18f (diff)
automatic import of python-dbt-mysqlopeneuler20.03
-rw-r--r--.gitignore1
-rw-r--r--python-dbt-mysql.spec344
-rw-r--r--sources1
3 files changed, 346 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..8c1fbdd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/dbt-mysql-1.1.0.tar.gz
diff --git a/python-dbt-mysql.spec b/python-dbt-mysql.spec
new file mode 100644
index 0000000..6b36390
--- /dev/null
+++ b/python-dbt-mysql.spec
@@ -0,0 +1,344 @@
+%global _empty_manifest_terminate_build 0
+Name: python-dbt-mysql
+Version: 1.1.0
+Release: 1
+Summary: The MySQL adapter plugin for dbt
+License: Apache Software License
+URL: https://github.com/dbeatty10/dbt-mysql
+Source0: https://mirrors.aliyun.com/pypi/web/packages/28/cf/823d40b1454cf292f7bf182daa48074d1c340d2f9cd2357b688481838be8/dbt-mysql-1.1.0.tar.gz
+BuildArch: noarch
+
+Requires: python3-dbt-core
+Requires: python3-mysql-connector-python
+
+%description
+ * [Installation](#installation)
+ * [Supported features](#supported-features)
+ * [MySQL 5.7 configuration gotchas](#mysql-57-configuration-gotchas)
+ * [Configuring your profile](#configuring-your-profile)
+ * [Notes](#notes)
+ * [Running Tests](#running-tests)
+ * [Reporting bugs and contributing code](#reporting-bugs-and-contributing-code)
+### Installation
+This plugin can be installed via pip:
+```shell
+$ python -m pip install dbt-mysql
+```
+### Supported features
+| MariaDB 10.5 | MySQL 5.7 | MySQL 8.0 | Feature |
+|:---------:|:---------:|:---:|-----------------------------|
+| ✅ | ✅ | ✅ | Table materialization |
+| ✅ | ✅ | ✅ | View materialization |
+| ✅ | ✅ | ✅ | Incremental materialization |
+| ✅ | ❌ | ✅ | Ephemeral materialization |
+| ✅ | ✅ | ✅ | Seeds |
+| ✅ | ✅ | ✅ | Sources |
+| ✅ | ✅ | ✅ | Custom data tests |
+| ✅ | ✅ | ✅ | Docs generate |
+| 🤷 | 🤷 | ✅ | Snapshots |
+Notes:
+- Ephemeral materializations rely upon [Common Table Expressions](https://en.wikipedia.org/wiki/Hierarchical_and_recursive_queries_in_SQL) (CTEs), which are not supported until MySQL 8.0
+- MySQL 5.7 has some configuration gotchas that affect snapshots (see below).
+#### MySQL 5.7 configuration gotchas
+dbt snapshots might not work properly due to [automatic initialization and updating for `TIMESTAMP`](https://dev.mysql.com/doc/refman/5.7/en/timestamp-initialization.html) if:
+- the output of `SHOW VARIABLES LIKE 'sql_mode'` includes `NO_ZERO_DATE`
+A solution is to include the following in a `*.cnf` file:
+```
+[mysqld]
+explicit_defaults_for_timestamp = true
+sql_mode = "ALLOW_INVALID_DATES,{other_sql_modes}"
+```
+where `{other_sql_modes}` is the rest of the modes from the `SHOW VARIABLES LIKE 'sql_mode'` output.
+### Configuring your profile
+A dbt profile can be configured to run against MySQL using configuration example below.
+Use `type: mysql` for MySQL 8.x, `type: mysql5` for MySQL 5.x, and `type: mariadb` for MariaDB.
+**Example entry for profiles.yml:**
+```
+your_profile_name:
+ target: dev
+ outputs:
+ dev:
+ type: mysql
+ server: localhost
+ port: 3306
+ schema: analytics
+ username: your_mysql_username
+ password: your_mysql_password
+ ssl_disabled: True
+```
+| Option | Description | Required? | Example |
+| --------------- | ----------------------------------------------------------------------------------- | ------------------------------------------------------------------ | ---------------------------------------------- |
+| type | The specific adapter to use | Required | `mysql`, `mysql5` or `mariadb` |
+| server | The server (hostname) to connect to | Required | `yourorg.mysqlhost.com` |
+| port | The port to use | Optional | `3306` |
+| schema | Specify the schema (database) to build models into | Required | `analytics` |
+| username | The username to use to connect to the server | Required | `dbt_admin` |
+| password | The password to use for authenticating to the server | Required | `correct-horse-battery-staple` |
+| ssl_disabled | Set to enable or disable TLS connectivity to mysql5.x | Optional | `True` or `False` |
+### Notes
+Conflicting terminology is used between:
+- dbt
+- Database management systems (DBMS) like MySQL, Postgres, and Snowflake
+- metadata in the ANSI-standard `information_schema`
+The conflicts include both:
+- the same word meaning different things
+- different words meaning the same thing
+For example, a "database" in MySQL is not the same as a "database" in dbt, but it is equivalent to a "schema" in Postgres 🤯.
+dbt-mysql uses the dbt terms. The native MySQL verbiage is restricted to SQL statements.
+This cross-walk aligns the terminology:
+| information_schema | dbt (and Postgres) | MySQL |
+| --------------------- | ---------------------------- | -------------------------------- |
+| catalog | database | _undefined / not implemented_ |
+| schema | schema | database |
+| relation (table/view) | relation (table/view) | relation (table/view) |
+| column | column | column |
+Additionally, many DBMS have relation names with three parts whereas MySQL has only two. E.g., a fully-qualified table name in Postgres is `database.schema.table` versus `database.table` in MySQL. The missing part in MySQL is the `information_schema` "catalog".
+| DBMS | Fully-qualified relation name | Parts |
+| ------------------ | ----------------------------- | ---------- |
+| Postgres | `database.schema.table` | 3 |
+| MySQL | `database.table` | 2 |
+### Running Tests
+See [test/README.md](test/README.md) for details on running the integration tests.
+### Reporting bugs and contributing code
+- Want to report a bug or request a feature? See the [contributing guidelines](https://github.com/dbeatty10/dbt-mysql/blob/main/CONTRIBUTING.rst#contributing), or open [an issue](https://github.com/dbeatty10/dbt-mysql/issues/new).
+### Credits
+dbt-mysql borrows from [dbt-spark](https://github.com/dbt-labs/dbt-spark) and [dbt-sqlite](https://github.com/codeforkjeff/dbt-sqlite) since Spark and SQLite also use two-part relation names.
+
+%package -n python3-dbt-mysql
+Summary: The MySQL adapter plugin for dbt
+Provides: python-dbt-mysql
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-dbt-mysql
+ * [Installation](#installation)
+ * [Supported features](#supported-features)
+ * [MySQL 5.7 configuration gotchas](#mysql-57-configuration-gotchas)
+ * [Configuring your profile](#configuring-your-profile)
+ * [Notes](#notes)
+ * [Running Tests](#running-tests)
+ * [Reporting bugs and contributing code](#reporting-bugs-and-contributing-code)
+### Installation
+This plugin can be installed via pip:
+```shell
+$ python -m pip install dbt-mysql
+```
+### Supported features
+| MariaDB 10.5 | MySQL 5.7 | MySQL 8.0 | Feature |
+|:---------:|:---------:|:---:|-----------------------------|
+| ✅ | ✅ | ✅ | Table materialization |
+| ✅ | ✅ | ✅ | View materialization |
+| ✅ | ✅ | ✅ | Incremental materialization |
+| ✅ | ❌ | ✅ | Ephemeral materialization |
+| ✅ | ✅ | ✅ | Seeds |
+| ✅ | ✅ | ✅ | Sources |
+| ✅ | ✅ | ✅ | Custom data tests |
+| ✅ | ✅ | ✅ | Docs generate |
+| 🤷 | 🤷 | ✅ | Snapshots |
+Notes:
+- Ephemeral materializations rely upon [Common Table Expressions](https://en.wikipedia.org/wiki/Hierarchical_and_recursive_queries_in_SQL) (CTEs), which are not supported until MySQL 8.0
+- MySQL 5.7 has some configuration gotchas that affect snapshots (see below).
+#### MySQL 5.7 configuration gotchas
+dbt snapshots might not work properly due to [automatic initialization and updating for `TIMESTAMP`](https://dev.mysql.com/doc/refman/5.7/en/timestamp-initialization.html) if:
+- the output of `SHOW VARIABLES LIKE 'sql_mode'` includes `NO_ZERO_DATE`
+A solution is to include the following in a `*.cnf` file:
+```
+[mysqld]
+explicit_defaults_for_timestamp = true
+sql_mode = "ALLOW_INVALID_DATES,{other_sql_modes}"
+```
+where `{other_sql_modes}` is the rest of the modes from the `SHOW VARIABLES LIKE 'sql_mode'` output.
+### Configuring your profile
+A dbt profile can be configured to run against MySQL using configuration example below.
+Use `type: mysql` for MySQL 8.x, `type: mysql5` for MySQL 5.x, and `type: mariadb` for MariaDB.
+**Example entry for profiles.yml:**
+```
+your_profile_name:
+ target: dev
+ outputs:
+ dev:
+ type: mysql
+ server: localhost
+ port: 3306
+ schema: analytics
+ username: your_mysql_username
+ password: your_mysql_password
+ ssl_disabled: True
+```
+| Option | Description | Required? | Example |
+| --------------- | ----------------------------------------------------------------------------------- | ------------------------------------------------------------------ | ---------------------------------------------- |
+| type | The specific adapter to use | Required | `mysql`, `mysql5` or `mariadb` |
+| server | The server (hostname) to connect to | Required | `yourorg.mysqlhost.com` |
+| port | The port to use | Optional | `3306` |
+| schema | Specify the schema (database) to build models into | Required | `analytics` |
+| username | The username to use to connect to the server | Required | `dbt_admin` |
+| password | The password to use for authenticating to the server | Required | `correct-horse-battery-staple` |
+| ssl_disabled | Set to enable or disable TLS connectivity to mysql5.x | Optional | `True` or `False` |
+### Notes
+Conflicting terminology is used between:
+- dbt
+- Database management systems (DBMS) like MySQL, Postgres, and Snowflake
+- metadata in the ANSI-standard `information_schema`
+The conflicts include both:
+- the same word meaning different things
+- different words meaning the same thing
+For example, a "database" in MySQL is not the same as a "database" in dbt, but it is equivalent to a "schema" in Postgres 🤯.
+dbt-mysql uses the dbt terms. The native MySQL verbiage is restricted to SQL statements.
+This cross-walk aligns the terminology:
+| information_schema | dbt (and Postgres) | MySQL |
+| --------------------- | ---------------------------- | -------------------------------- |
+| catalog | database | _undefined / not implemented_ |
+| schema | schema | database |
+| relation (table/view) | relation (table/view) | relation (table/view) |
+| column | column | column |
+Additionally, many DBMS have relation names with three parts whereas MySQL has only two. E.g., a fully-qualified table name in Postgres is `database.schema.table` versus `database.table` in MySQL. The missing part in MySQL is the `information_schema` "catalog".
+| DBMS | Fully-qualified relation name | Parts |
+| ------------------ | ----------------------------- | ---------- |
+| Postgres | `database.schema.table` | 3 |
+| MySQL | `database.table` | 2 |
+### Running Tests
+See [test/README.md](test/README.md) for details on running the integration tests.
+### Reporting bugs and contributing code
+- Want to report a bug or request a feature? See the [contributing guidelines](https://github.com/dbeatty10/dbt-mysql/blob/main/CONTRIBUTING.rst#contributing), or open [an issue](https://github.com/dbeatty10/dbt-mysql/issues/new).
+### Credits
+dbt-mysql borrows from [dbt-spark](https://github.com/dbt-labs/dbt-spark) and [dbt-sqlite](https://github.com/codeforkjeff/dbt-sqlite) since Spark and SQLite also use two-part relation names.
+
+%package help
+Summary: Development documents and examples for dbt-mysql
+Provides: python3-dbt-mysql-doc
+%description help
+ * [Installation](#installation)
+ * [Supported features](#supported-features)
+ * [MySQL 5.7 configuration gotchas](#mysql-57-configuration-gotchas)
+ * [Configuring your profile](#configuring-your-profile)
+ * [Notes](#notes)
+ * [Running Tests](#running-tests)
+ * [Reporting bugs and contributing code](#reporting-bugs-and-contributing-code)
+### Installation
+This plugin can be installed via pip:
+```shell
+$ python -m pip install dbt-mysql
+```
+### Supported features
+| MariaDB 10.5 | MySQL 5.7 | MySQL 8.0 | Feature |
+|:---------:|:---------:|:---:|-----------------------------|
+| ✅ | ✅ | ✅ | Table materialization |
+| ✅ | ✅ | ✅ | View materialization |
+| ✅ | ✅ | ✅ | Incremental materialization |
+| ✅ | ❌ | ✅ | Ephemeral materialization |
+| ✅ | ✅ | ✅ | Seeds |
+| ✅ | ✅ | ✅ | Sources |
+| ✅ | ✅ | ✅ | Custom data tests |
+| ✅ | ✅ | ✅ | Docs generate |
+| 🤷 | 🤷 | ✅ | Snapshots |
+Notes:
+- Ephemeral materializations rely upon [Common Table Expressions](https://en.wikipedia.org/wiki/Hierarchical_and_recursive_queries_in_SQL) (CTEs), which are not supported until MySQL 8.0
+- MySQL 5.7 has some configuration gotchas that affect snapshots (see below).
+#### MySQL 5.7 configuration gotchas
+dbt snapshots might not work properly due to [automatic initialization and updating for `TIMESTAMP`](https://dev.mysql.com/doc/refman/5.7/en/timestamp-initialization.html) if:
+- the output of `SHOW VARIABLES LIKE 'sql_mode'` includes `NO_ZERO_DATE`
+A solution is to include the following in a `*.cnf` file:
+```
+[mysqld]
+explicit_defaults_for_timestamp = true
+sql_mode = "ALLOW_INVALID_DATES,{other_sql_modes}"
+```
+where `{other_sql_modes}` is the rest of the modes from the `SHOW VARIABLES LIKE 'sql_mode'` output.
+### Configuring your profile
+A dbt profile can be configured to run against MySQL using configuration example below.
+Use `type: mysql` for MySQL 8.x, `type: mysql5` for MySQL 5.x, and `type: mariadb` for MariaDB.
+**Example entry for profiles.yml:**
+```
+your_profile_name:
+ target: dev
+ outputs:
+ dev:
+ type: mysql
+ server: localhost
+ port: 3306
+ schema: analytics
+ username: your_mysql_username
+ password: your_mysql_password
+ ssl_disabled: True
+```
+| Option | Description | Required? | Example |
+| --------------- | ----------------------------------------------------------------------------------- | ------------------------------------------------------------------ | ---------------------------------------------- |
+| type | The specific adapter to use | Required | `mysql`, `mysql5` or `mariadb` |
+| server | The server (hostname) to connect to | Required | `yourorg.mysqlhost.com` |
+| port | The port to use | Optional | `3306` |
+| schema | Specify the schema (database) to build models into | Required | `analytics` |
+| username | The username to use to connect to the server | Required | `dbt_admin` |
+| password | The password to use for authenticating to the server | Required | `correct-horse-battery-staple` |
+| ssl_disabled | Set to enable or disable TLS connectivity to mysql5.x | Optional | `True` or `False` |
+### Notes
+Conflicting terminology is used between:
+- dbt
+- Database management systems (DBMS) like MySQL, Postgres, and Snowflake
+- metadata in the ANSI-standard `information_schema`
+The conflicts include both:
+- the same word meaning different things
+- different words meaning the same thing
+For example, a "database" in MySQL is not the same as a "database" in dbt, but it is equivalent to a "schema" in Postgres 🤯.
+dbt-mysql uses the dbt terms. The native MySQL verbiage is restricted to SQL statements.
+This cross-walk aligns the terminology:
+| information_schema | dbt (and Postgres) | MySQL |
+| --------------------- | ---------------------------- | -------------------------------- |
+| catalog | database | _undefined / not implemented_ |
+| schema | schema | database |
+| relation (table/view) | relation (table/view) | relation (table/view) |
+| column | column | column |
+Additionally, many DBMS have relation names with three parts whereas MySQL has only two. E.g., a fully-qualified table name in Postgres is `database.schema.table` versus `database.table` in MySQL. The missing part in MySQL is the `information_schema` "catalog".
+| DBMS | Fully-qualified relation name | Parts |
+| ------------------ | ----------------------------- | ---------- |
+| Postgres | `database.schema.table` | 3 |
+| MySQL | `database.table` | 2 |
+### Running Tests
+See [test/README.md](test/README.md) for details on running the integration tests.
+### Reporting bugs and contributing code
+- Want to report a bug or request a feature? See the [contributing guidelines](https://github.com/dbeatty10/dbt-mysql/blob/main/CONTRIBUTING.rst#contributing), or open [an issue](https://github.com/dbeatty10/dbt-mysql/issues/new).
+### Credits
+dbt-mysql borrows from [dbt-spark](https://github.com/dbt-labs/dbt-spark) and [dbt-sqlite](https://github.com/codeforkjeff/dbt-sqlite) since Spark and SQLite also use two-part relation names.
+
+%prep
+%autosetup -n dbt-mysql-1.1.0
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "\"/%h/%f.gz\"\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-dbt-mysql -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Tue Jun 20 2023 Python_Bot <Python_Bot@openeuler.org> - 1.1.0-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..ea05b07
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+7192a789e8d93682e68c0077ccd50ec3 dbt-mysql-1.1.0.tar.gz