summaryrefslogtreecommitdiff
path: root/python-mongodb-migrations.spec
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-05-10 05:59:31 +0000
committerCoprDistGit <infra@openeuler.org>2023-05-10 05:59:31 +0000
commit947094749b5acd889636344511b06988ca0a9294 (patch)
tree1a3daa62d0952dbc0b24d94524975fe0f0f3a7c4 /python-mongodb-migrations.spec
parent6286b30f2450f0d4c57012c7dbfcb6994a723814 (diff)
automatic import of python-mongodb-migrations
Diffstat (limited to 'python-mongodb-migrations.spec')
-rw-r--r--python-mongodb-migrations.spec314
1 files changed, 314 insertions, 0 deletions
diff --git a/python-mongodb-migrations.spec b/python-mongodb-migrations.spec
new file mode 100644
index 0000000..569f980
--- /dev/null
+++ b/python-mongodb-migrations.spec
@@ -0,0 +1,314 @@
+%global _empty_manifest_terminate_build 0
+Name: python-mongodb-migrations
+Version: 1.2.1
+Release: 1
+Summary: A database migration tool for MongoDB
+License: GPLv3
+URL: https://github.com/DoubleCiti/mongodb-migrations
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/23/f8/7cebe6664614b6dfc6de9759a5af18ea4f2bcb9b2c83ba1e94bd3c9841b6/mongodb-migrations-1.2.1.tar.gz
+BuildArch: noarch
+
+Requires: python3-pymongo
+Requires: python3-configparser
+
+%description
+MongoDB is a great NoSQL and schema-less database, but if already have data in database and you changed data schema, you need a migration tool to update your existing data.
+## How to install
+* use `pip`
+ ```bash
+ $ pip install mongodb-migrations
+ ```
+* from source code
+ ```bash
+ $ python setup.py install
+ ```
+## How to use it
+1. create a fold named `migrations`
+2. create a python file with name in form of `TIMESTAMP_description.py` , i.e.`20160320145400_description.py`, otherwise migration file won't be found.
+3. in `20160320145400_description.py` create a class named `Migration` and extends `BaseMigration`
+4. implement `upgrade` method
+5. use cli `mongodb-migrate` to run migrations
+6. `metastore` is an optional parameter of collection name where it stores the previous migrations
+**Now there is an easier way to create a migration file, command `mongodb-migrate-create --description <description>` will create an empty migration file in `migrations` folder or the folder provided by `--migrations`.**
+If you don't wish to use the CLI, you can override the MigrationManager -> create_config and then call MigrationManager -> run. Example execution:
+```python
+ manager = MigrationManager()
+ manager.config.config_file = "foobar.ini"
+ manager.config._from_ini()
+ manager.run()
+```
+You can also use the same config to keep multiple keys, the manager allows you access by using:
+```python
+ ini_config_parser = manager.config.ini_parser
+ ini_config_parser.get('foo','bar')
+```
+## Configuration
+`mongodb-migrations` will try to load `config.ini` first, if it's not found, default values will be used. If any command line argument is provided, it will override config from configuration file.
+**Database name or Url is mandatory**
+### config.ini example
+```ini
+[mongo]
+host = 127.0.0.1
+port = 27017
+database = test
+migrations = migrations
+metastore = database_migrations
+```
+### alternative config.ini example
+```ini
+[mongo]
+url = mongodb://127.0.0.1:27017/test
+migrations = migrations
+```
+### auth-db config.ini example
+```ini
+[mongo]
+url = mongodb://127.0.0.1:27017/admin
+username = admin
+password = secret123
+database = test
+migrations = migrations
+metastore = database_migrations
+```
+### command line arguments example
+```bash
+mongodb-migrate --host 127.0.0.1 --port 27017 --database test --migrations examples
+```
+### alternative command line example
+```bash
+mongodb-migrate --url mongodb://127.0.0.1:27017/test --migrations examples
+```
+## Example
+Migration files are located in `examples`, run following command to run migrations:
+```
+$ MONGODB_MIGRATIONS_CONFIG=examples/config.ini mongodb-migrate
+```
+For Downgrading the migrations, you need to pass a command line switch `--downgrade`
+To upgrade/downgrade only to a specific migration, use `--to_datetime`. This command will upgrade to the migration with prefix `20191115180633`:
+```bash
+mongodb-migrate --url mongodb://127.0.0.1:27017/test --migrations examples --to_datetime 20191115180633
+```
+## Getting involved
+* if you find any bug or need anything, please log an issue here: [Issues](https://github.com/DoubleCiti/mongodb-migrations/issues)
+## Contributors
+* [Rohit Garg](https://github.com/rohitggarg)
+* [mpgalaxy](https://github.com/mpgalaxy)
+
+%package -n python3-mongodb-migrations
+Summary: A database migration tool for MongoDB
+Provides: python-mongodb-migrations
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-mongodb-migrations
+MongoDB is a great NoSQL and schema-less database, but if already have data in database and you changed data schema, you need a migration tool to update your existing data.
+## How to install
+* use `pip`
+ ```bash
+ $ pip install mongodb-migrations
+ ```
+* from source code
+ ```bash
+ $ python setup.py install
+ ```
+## How to use it
+1. create a fold named `migrations`
+2. create a python file with name in form of `TIMESTAMP_description.py` , i.e.`20160320145400_description.py`, otherwise migration file won't be found.
+3. in `20160320145400_description.py` create a class named `Migration` and extends `BaseMigration`
+4. implement `upgrade` method
+5. use cli `mongodb-migrate` to run migrations
+6. `metastore` is an optional parameter of collection name where it stores the previous migrations
+**Now there is an easier way to create a migration file, command `mongodb-migrate-create --description <description>` will create an empty migration file in `migrations` folder or the folder provided by `--migrations`.**
+If you don't wish to use the CLI, you can override the MigrationManager -> create_config and then call MigrationManager -> run. Example execution:
+```python
+ manager = MigrationManager()
+ manager.config.config_file = "foobar.ini"
+ manager.config._from_ini()
+ manager.run()
+```
+You can also use the same config to keep multiple keys, the manager allows you access by using:
+```python
+ ini_config_parser = manager.config.ini_parser
+ ini_config_parser.get('foo','bar')
+```
+## Configuration
+`mongodb-migrations` will try to load `config.ini` first, if it's not found, default values will be used. If any command line argument is provided, it will override config from configuration file.
+**Database name or Url is mandatory**
+### config.ini example
+```ini
+[mongo]
+host = 127.0.0.1
+port = 27017
+database = test
+migrations = migrations
+metastore = database_migrations
+```
+### alternative config.ini example
+```ini
+[mongo]
+url = mongodb://127.0.0.1:27017/test
+migrations = migrations
+```
+### auth-db config.ini example
+```ini
+[mongo]
+url = mongodb://127.0.0.1:27017/admin
+username = admin
+password = secret123
+database = test
+migrations = migrations
+metastore = database_migrations
+```
+### command line arguments example
+```bash
+mongodb-migrate --host 127.0.0.1 --port 27017 --database test --migrations examples
+```
+### alternative command line example
+```bash
+mongodb-migrate --url mongodb://127.0.0.1:27017/test --migrations examples
+```
+## Example
+Migration files are located in `examples`, run following command to run migrations:
+```
+$ MONGODB_MIGRATIONS_CONFIG=examples/config.ini mongodb-migrate
+```
+For Downgrading the migrations, you need to pass a command line switch `--downgrade`
+To upgrade/downgrade only to a specific migration, use `--to_datetime`. This command will upgrade to the migration with prefix `20191115180633`:
+```bash
+mongodb-migrate --url mongodb://127.0.0.1:27017/test --migrations examples --to_datetime 20191115180633
+```
+## Getting involved
+* if you find any bug or need anything, please log an issue here: [Issues](https://github.com/DoubleCiti/mongodb-migrations/issues)
+## Contributors
+* [Rohit Garg](https://github.com/rohitggarg)
+* [mpgalaxy](https://github.com/mpgalaxy)
+
+%package help
+Summary: Development documents and examples for mongodb-migrations
+Provides: python3-mongodb-migrations-doc
+%description help
+MongoDB is a great NoSQL and schema-less database, but if already have data in database and you changed data schema, you need a migration tool to update your existing data.
+## How to install
+* use `pip`
+ ```bash
+ $ pip install mongodb-migrations
+ ```
+* from source code
+ ```bash
+ $ python setup.py install
+ ```
+## How to use it
+1. create a fold named `migrations`
+2. create a python file with name in form of `TIMESTAMP_description.py` , i.e.`20160320145400_description.py`, otherwise migration file won't be found.
+3. in `20160320145400_description.py` create a class named `Migration` and extends `BaseMigration`
+4. implement `upgrade` method
+5. use cli `mongodb-migrate` to run migrations
+6. `metastore` is an optional parameter of collection name where it stores the previous migrations
+**Now there is an easier way to create a migration file, command `mongodb-migrate-create --description <description>` will create an empty migration file in `migrations` folder or the folder provided by `--migrations`.**
+If you don't wish to use the CLI, you can override the MigrationManager -> create_config and then call MigrationManager -> run. Example execution:
+```python
+ manager = MigrationManager()
+ manager.config.config_file = "foobar.ini"
+ manager.config._from_ini()
+ manager.run()
+```
+You can also use the same config to keep multiple keys, the manager allows you access by using:
+```python
+ ini_config_parser = manager.config.ini_parser
+ ini_config_parser.get('foo','bar')
+```
+## Configuration
+`mongodb-migrations` will try to load `config.ini` first, if it's not found, default values will be used. If any command line argument is provided, it will override config from configuration file.
+**Database name or Url is mandatory**
+### config.ini example
+```ini
+[mongo]
+host = 127.0.0.1
+port = 27017
+database = test
+migrations = migrations
+metastore = database_migrations
+```
+### alternative config.ini example
+```ini
+[mongo]
+url = mongodb://127.0.0.1:27017/test
+migrations = migrations
+```
+### auth-db config.ini example
+```ini
+[mongo]
+url = mongodb://127.0.0.1:27017/admin
+username = admin
+password = secret123
+database = test
+migrations = migrations
+metastore = database_migrations
+```
+### command line arguments example
+```bash
+mongodb-migrate --host 127.0.0.1 --port 27017 --database test --migrations examples
+```
+### alternative command line example
+```bash
+mongodb-migrate --url mongodb://127.0.0.1:27017/test --migrations examples
+```
+## Example
+Migration files are located in `examples`, run following command to run migrations:
+```
+$ MONGODB_MIGRATIONS_CONFIG=examples/config.ini mongodb-migrate
+```
+For Downgrading the migrations, you need to pass a command line switch `--downgrade`
+To upgrade/downgrade only to a specific migration, use `--to_datetime`. This command will upgrade to the migration with prefix `20191115180633`:
+```bash
+mongodb-migrate --url mongodb://127.0.0.1:27017/test --migrations examples --to_datetime 20191115180633
+```
+## Getting involved
+* if you find any bug or need anything, please log an issue here: [Issues](https://github.com/DoubleCiti/mongodb-migrations/issues)
+## Contributors
+* [Rohit Garg](https://github.com/rohitggarg)
+* [mpgalaxy](https://github.com/mpgalaxy)
+
+%prep
+%autosetup -n mongodb-migrations-1.2.1
+
+%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-mongodb-migrations -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Wed May 10 2023 Python_Bot <Python_Bot@openeuler.org> - 1.2.1-1
+- Package Spec generated