diff options
| author | CoprDistGit <infra@openeuler.org> | 2023-05-10 05:59:31 +0000 |
|---|---|---|
| committer | CoprDistGit <infra@openeuler.org> | 2023-05-10 05:59:31 +0000 |
| commit | 947094749b5acd889636344511b06988ca0a9294 (patch) | |
| tree | 1a3daa62d0952dbc0b24d94524975fe0f0f3a7c4 /python-mongodb-migrations.spec | |
| parent | 6286b30f2450f0d4c57012c7dbfcb6994a723814 (diff) | |
automatic import of python-mongodb-migrations
Diffstat (limited to 'python-mongodb-migrations.spec')
| -rw-r--r-- | python-mongodb-migrations.spec | 314 |
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 |
