odoo-devops-tools 1.20.0__tar.gz → 1.20.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {odoo_devops_tools-1.20.0 → odoo_devops_tools-1.20.2}/PKG-INFO +20 -20
- {odoo_devops_tools-1.20.0 → odoo_devops_tools-1.20.2}/README.md +19 -19
- odoo_devops_tools-1.20.2/odoo_devops_tools/__init__.py +1 -0
- {odoo_devops_tools-1.20.0 → odoo_devops_tools-1.20.2}/odoo_devops_tools/env.py +10 -0
- {odoo_devops_tools-1.20.0 → odoo_devops_tools-1.20.2}/odoo_devops_tools.egg-info/PKG-INFO +20 -20
- {odoo_devops_tools-1.20.0 → odoo_devops_tools-1.20.2}/pyproject.toml +1 -1
- odoo_devops_tools-1.20.0/odoo_devops_tools/__init__.py +0 -1
- {odoo_devops_tools-1.20.0 → odoo_devops_tools-1.20.2}/LICENSE +0 -0
- {odoo_devops_tools-1.20.0 → odoo_devops_tools-1.20.2}/odoo_devops_tools.egg-info/SOURCES.txt +0 -0
- {odoo_devops_tools-1.20.0 → odoo_devops_tools-1.20.2}/odoo_devops_tools.egg-info/dependency_links.txt +0 -0
- {odoo_devops_tools-1.20.0 → odoo_devops_tools-1.20.2}/odoo_devops_tools.egg-info/entry_points.txt +0 -0
- {odoo_devops_tools-1.20.0 → odoo_devops_tools-1.20.2}/odoo_devops_tools.egg-info/top_level.txt +0 -0
- {odoo_devops_tools-1.20.0 → odoo_devops_tools-1.20.2}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: odoo-devops-tools
|
|
3
|
-
Version: 1.20.
|
|
3
|
+
Version: 1.20.2
|
|
4
4
|
Summary: A small set of utilities for local Odoo development and simple Odoo deployments.
|
|
5
5
|
Author: Roman Lacko
|
|
6
6
|
License-Expression: MIT
|
|
@@ -274,7 +274,7 @@ For subsequent addon updates, use the generated update script:
|
|
|
274
274
|
|
|
275
275
|
The generated script uses `click-odoo-update` with the workspace Odoo configuration.
|
|
276
276
|
|
|
277
|
-
### Local Docker backup and restore
|
|
277
|
+
### 2. Local Docker backup and restore
|
|
278
278
|
|
|
279
279
|
The Local Docker workflow generates Unix shell helpers under `ROOT/docker/local/scripts/` for backing up and restoring the PostgreSQL database and Odoo filestore independently:
|
|
280
280
|
|
|
@@ -297,7 +297,7 @@ The default database name is taken from `[config].db_name` when configured, othe
|
|
|
297
297
|
ODOO_DB_NAME=odoo_test ./docker/local/scripts/backup-db.sh
|
|
298
298
|
```
|
|
299
299
|
|
|
300
|
-
#### Database backup
|
|
300
|
+
#### 2.1. Database backup
|
|
301
301
|
|
|
302
302
|
Create a PostgreSQL custom-format dump under `ROOT/odoo-backups/`:
|
|
303
303
|
|
|
@@ -317,7 +317,7 @@ Pass an output path explicitly when needed:
|
|
|
317
317
|
./docker/local/scripts/backup-db.sh ./odoo-backups/pre-upgrade.dump
|
|
318
318
|
```
|
|
319
319
|
|
|
320
|
-
#### Database restore
|
|
320
|
+
#### 2.2. Database restore
|
|
321
321
|
|
|
322
322
|
Restore a database dump with `pg_restore`:
|
|
323
323
|
|
|
@@ -339,7 +339,7 @@ To restore the same dump into another database without replacing the default dat
|
|
|
339
339
|
ODOO_DB_NAME=odoo_restore ./docker/local/scripts/restore-db.sh ./odoo-backups/pre-upgrade.dump
|
|
340
340
|
```
|
|
341
341
|
|
|
342
|
-
#### Filestore backup
|
|
342
|
+
#### 2.3. Filestore backup
|
|
343
343
|
|
|
344
344
|
Create a compressed tar archive of the selected database filestore:
|
|
345
345
|
|
|
@@ -370,7 +370,7 @@ docker compose stop odoo
|
|
|
370
370
|
docker compose up -d odoo
|
|
371
371
|
```
|
|
372
372
|
|
|
373
|
-
#### Filestore restore
|
|
373
|
+
#### 2.4. Filestore restore
|
|
374
374
|
|
|
375
375
|
Restore a filestore archive:
|
|
376
376
|
|
|
@@ -394,7 +394,7 @@ ODOO_DB_NAME=odoo_restore ./docker/local/scripts/restore-filestore.sh ./odoo-bac
|
|
|
394
394
|
|
|
395
395
|
Database and filestore backups are intentionally separate. This allows either part to be restored independently while still making it possible to create matching database and filestore backups when both are needed.
|
|
396
396
|
|
|
397
|
-
#### Restic filestore backup
|
|
397
|
+
#### 2.5. Restic filestore backup
|
|
398
398
|
|
|
399
399
|
The generated Docker image also includes `restic`, installed from the base image APT repositories. Restic is an additional option intended especially for large filestores where incremental snapshots and deduplication are useful.
|
|
400
400
|
|
|
@@ -442,7 +442,7 @@ List or inspect snapshots through the generic wrapper:
|
|
|
442
442
|
./docker/local/scripts/restic.sh check
|
|
443
443
|
```
|
|
444
444
|
|
|
445
|
-
#### Restic filestore restore
|
|
445
|
+
#### 2.6. Restic filestore restore
|
|
446
446
|
|
|
447
447
|
Restore the latest matching filestore snapshot:
|
|
448
448
|
|
|
@@ -470,7 +470,7 @@ The restore helper removes the target database filestore before restoring it. Wh
|
|
|
470
470
|
|
|
471
471
|
---
|
|
472
472
|
|
|
473
|
-
###
|
|
473
|
+
### 3. Creating a Docker deploy build context
|
|
474
474
|
|
|
475
475
|
Use `--create-docker-deploy` to generate a self-contained Docker build context for CI/CD, testing, staging, production, or another non-local deployment workflow.
|
|
476
476
|
|
|
@@ -511,7 +511,7 @@ docker build -t mycompany/odoo:19.0 docker/deploy
|
|
|
511
511
|
|
|
512
512
|
---
|
|
513
513
|
|
|
514
|
-
###
|
|
514
|
+
### 4. Managing Python requirements
|
|
515
515
|
|
|
516
516
|
The `[virtualenv]` section controls additional Python dependencies used when provisioning both the native virtual environment and generated Docker images.
|
|
517
517
|
|
|
@@ -524,7 +524,7 @@ Use:
|
|
|
524
524
|
|
|
525
525
|
When a package is listed in `requirements`, `odt-env` automatically gives that package priority by ignoring the same package name from collected repository requirements. This means you can usually pin a package version just by adding it to `requirements`.
|
|
526
526
|
|
|
527
|
-
####
|
|
527
|
+
#### 4.1. Add or pin packages
|
|
528
528
|
|
|
529
529
|
Use `requirements` to install additional packages or to force a specific version:
|
|
530
530
|
|
|
@@ -537,7 +537,7 @@ requirements =
|
|
|
537
537
|
|
|
538
538
|
In this example, both packages are included in the generated dependency set and pinned to the specified versions.
|
|
539
539
|
|
|
540
|
-
####
|
|
540
|
+
#### 4.2. Override a package with a different one
|
|
541
541
|
|
|
542
542
|
If you want to replace a package with a different distribution name, add the replacement to `requirements` and skip the original package with `requirements_ignore`.
|
|
543
543
|
|
|
@@ -555,13 +555,13 @@ In this example, `odt-env` installs `psycopg2-binary==2.9.9` and skips `psycopg2
|
|
|
555
555
|
|
|
556
556
|
---
|
|
557
557
|
|
|
558
|
-
###
|
|
558
|
+
### 5. Using system Python instead of managed Python
|
|
559
559
|
|
|
560
560
|
By default, `odt-env` uses `uv` to install and manage the requested Python version.
|
|
561
561
|
|
|
562
562
|
If you already have a suitable system Python installed, you can disable managed Python.
|
|
563
563
|
|
|
564
|
-
####
|
|
564
|
+
#### 5.1. Update the project file
|
|
565
565
|
|
|
566
566
|
Disable managed Python by adding `python_version = 3.11` and `managed_python = false` to the `odoo-project.ini` file.
|
|
567
567
|
|
|
@@ -575,7 +575,7 @@ managed_python = false
|
|
|
575
575
|
python_version = 3.11
|
|
576
576
|
```
|
|
577
577
|
|
|
578
|
-
####
|
|
578
|
+
#### 5.2. Update the workspace
|
|
579
579
|
|
|
580
580
|
After changing the project file, run `odt-env` again from the workspace root:
|
|
581
581
|
|
|
@@ -587,7 +587,7 @@ This recreates the virtual environment at `ROOT/venv` using the system Python.
|
|
|
587
587
|
|
|
588
588
|
---
|
|
589
589
|
|
|
590
|
-
###
|
|
590
|
+
### 6. Creating portable workspace bundles
|
|
591
591
|
|
|
592
592
|
Portable bundles are useful when you want to prepare an Odoo workspace on an internet-connected machine and reproduce it on another compatible machine without cloning repositories or downloading Python packages again.
|
|
593
593
|
|
|
@@ -605,7 +605,7 @@ The bundle does not contain the virtual environment, database data, logs, backup
|
|
|
605
605
|
|
|
606
606
|
Those machine-specific outputs are recreated on the target machine.
|
|
607
607
|
|
|
608
|
-
####
|
|
608
|
+
#### 6.1. Create a bundle on the build machine
|
|
609
609
|
|
|
610
610
|
On an internet-connected build machine, sync the sources, build the wheelhouse, and create the bundle in one command:
|
|
611
611
|
|
|
@@ -625,7 +625,7 @@ You can also select an explicit output file:
|
|
|
625
625
|
odt-env --sync-all --create-venv --create-bundle ./artifacts/odoo18-production.odt.zip
|
|
626
626
|
```
|
|
627
627
|
|
|
628
|
-
####
|
|
628
|
+
#### 6.1.1. Including uncommitted changes
|
|
629
629
|
|
|
630
630
|
By default, bundle creation stops when a bundled Git repository has uncommitted changes.
|
|
631
631
|
|
|
@@ -635,7 +635,7 @@ To intentionally include those changes in the bundle, use:
|
|
|
635
635
|
odt-env --sync-all --create-venv --create-bundle --allow-dirty-bundle
|
|
636
636
|
```
|
|
637
637
|
|
|
638
|
-
####
|
|
638
|
+
#### 6.2. Create the workspace on the target machine
|
|
639
639
|
|
|
640
640
|
Copy the ZIP to the target machine and import it into an empty directory:
|
|
641
641
|
|
|
@@ -662,7 +662,7 @@ The import operation:
|
|
|
662
662
|
> **Compatibility note**
|
|
663
663
|
> A wheelhouse is platform- and architecture-dependent. Create and import a bundle on compatible systems, for example Linux x86-64 to Linux x86-64. The target machine must have `uv` and access to the configured Python version. When `[virtualenv].managed_python = true`, `uv` may still need network access if that Python interpreter is not already installed or cached. For a fully disconnected target, install the required Python interpreter beforehand or use `managed_python = false`.
|
|
664
664
|
|
|
665
|
-
####
|
|
665
|
+
#### 6.3. Manual wheelhouse workflow
|
|
666
666
|
|
|
667
667
|
The existing manual workflow remains available. After preparing a complete workspace on the build machine, copy the whole workspace and run this command from the copied root:
|
|
668
668
|
|
|
@@ -246,7 +246,7 @@ For subsequent addon updates, use the generated update script:
|
|
|
246
246
|
|
|
247
247
|
The generated script uses `click-odoo-update` with the workspace Odoo configuration.
|
|
248
248
|
|
|
249
|
-
### Local Docker backup and restore
|
|
249
|
+
### 2. Local Docker backup and restore
|
|
250
250
|
|
|
251
251
|
The Local Docker workflow generates Unix shell helpers under `ROOT/docker/local/scripts/` for backing up and restoring the PostgreSQL database and Odoo filestore independently:
|
|
252
252
|
|
|
@@ -269,7 +269,7 @@ The default database name is taken from `[config].db_name` when configured, othe
|
|
|
269
269
|
ODOO_DB_NAME=odoo_test ./docker/local/scripts/backup-db.sh
|
|
270
270
|
```
|
|
271
271
|
|
|
272
|
-
#### Database backup
|
|
272
|
+
#### 2.1. Database backup
|
|
273
273
|
|
|
274
274
|
Create a PostgreSQL custom-format dump under `ROOT/odoo-backups/`:
|
|
275
275
|
|
|
@@ -289,7 +289,7 @@ Pass an output path explicitly when needed:
|
|
|
289
289
|
./docker/local/scripts/backup-db.sh ./odoo-backups/pre-upgrade.dump
|
|
290
290
|
```
|
|
291
291
|
|
|
292
|
-
#### Database restore
|
|
292
|
+
#### 2.2. Database restore
|
|
293
293
|
|
|
294
294
|
Restore a database dump with `pg_restore`:
|
|
295
295
|
|
|
@@ -311,7 +311,7 @@ To restore the same dump into another database without replacing the default dat
|
|
|
311
311
|
ODOO_DB_NAME=odoo_restore ./docker/local/scripts/restore-db.sh ./odoo-backups/pre-upgrade.dump
|
|
312
312
|
```
|
|
313
313
|
|
|
314
|
-
#### Filestore backup
|
|
314
|
+
#### 2.3. Filestore backup
|
|
315
315
|
|
|
316
316
|
Create a compressed tar archive of the selected database filestore:
|
|
317
317
|
|
|
@@ -342,7 +342,7 @@ docker compose stop odoo
|
|
|
342
342
|
docker compose up -d odoo
|
|
343
343
|
```
|
|
344
344
|
|
|
345
|
-
#### Filestore restore
|
|
345
|
+
#### 2.4. Filestore restore
|
|
346
346
|
|
|
347
347
|
Restore a filestore archive:
|
|
348
348
|
|
|
@@ -366,7 +366,7 @@ ODOO_DB_NAME=odoo_restore ./docker/local/scripts/restore-filestore.sh ./odoo-bac
|
|
|
366
366
|
|
|
367
367
|
Database and filestore backups are intentionally separate. This allows either part to be restored independently while still making it possible to create matching database and filestore backups when both are needed.
|
|
368
368
|
|
|
369
|
-
#### Restic filestore backup
|
|
369
|
+
#### 2.5. Restic filestore backup
|
|
370
370
|
|
|
371
371
|
The generated Docker image also includes `restic`, installed from the base image APT repositories. Restic is an additional option intended especially for large filestores where incremental snapshots and deduplication are useful.
|
|
372
372
|
|
|
@@ -414,7 +414,7 @@ List or inspect snapshots through the generic wrapper:
|
|
|
414
414
|
./docker/local/scripts/restic.sh check
|
|
415
415
|
```
|
|
416
416
|
|
|
417
|
-
#### Restic filestore restore
|
|
417
|
+
#### 2.6. Restic filestore restore
|
|
418
418
|
|
|
419
419
|
Restore the latest matching filestore snapshot:
|
|
420
420
|
|
|
@@ -442,7 +442,7 @@ The restore helper removes the target database filestore before restoring it. Wh
|
|
|
442
442
|
|
|
443
443
|
---
|
|
444
444
|
|
|
445
|
-
###
|
|
445
|
+
### 3. Creating a Docker deploy build context
|
|
446
446
|
|
|
447
447
|
Use `--create-docker-deploy` to generate a self-contained Docker build context for CI/CD, testing, staging, production, or another non-local deployment workflow.
|
|
448
448
|
|
|
@@ -483,7 +483,7 @@ docker build -t mycompany/odoo:19.0 docker/deploy
|
|
|
483
483
|
|
|
484
484
|
---
|
|
485
485
|
|
|
486
|
-
###
|
|
486
|
+
### 4. Managing Python requirements
|
|
487
487
|
|
|
488
488
|
The `[virtualenv]` section controls additional Python dependencies used when provisioning both the native virtual environment and generated Docker images.
|
|
489
489
|
|
|
@@ -496,7 +496,7 @@ Use:
|
|
|
496
496
|
|
|
497
497
|
When a package is listed in `requirements`, `odt-env` automatically gives that package priority by ignoring the same package name from collected repository requirements. This means you can usually pin a package version just by adding it to `requirements`.
|
|
498
498
|
|
|
499
|
-
####
|
|
499
|
+
#### 4.1. Add or pin packages
|
|
500
500
|
|
|
501
501
|
Use `requirements` to install additional packages or to force a specific version:
|
|
502
502
|
|
|
@@ -509,7 +509,7 @@ requirements =
|
|
|
509
509
|
|
|
510
510
|
In this example, both packages are included in the generated dependency set and pinned to the specified versions.
|
|
511
511
|
|
|
512
|
-
####
|
|
512
|
+
#### 4.2. Override a package with a different one
|
|
513
513
|
|
|
514
514
|
If you want to replace a package with a different distribution name, add the replacement to `requirements` and skip the original package with `requirements_ignore`.
|
|
515
515
|
|
|
@@ -527,13 +527,13 @@ In this example, `odt-env` installs `psycopg2-binary==2.9.9` and skips `psycopg2
|
|
|
527
527
|
|
|
528
528
|
---
|
|
529
529
|
|
|
530
|
-
###
|
|
530
|
+
### 5. Using system Python instead of managed Python
|
|
531
531
|
|
|
532
532
|
By default, `odt-env` uses `uv` to install and manage the requested Python version.
|
|
533
533
|
|
|
534
534
|
If you already have a suitable system Python installed, you can disable managed Python.
|
|
535
535
|
|
|
536
|
-
####
|
|
536
|
+
#### 5.1. Update the project file
|
|
537
537
|
|
|
538
538
|
Disable managed Python by adding `python_version = 3.11` and `managed_python = false` to the `odoo-project.ini` file.
|
|
539
539
|
|
|
@@ -547,7 +547,7 @@ managed_python = false
|
|
|
547
547
|
python_version = 3.11
|
|
548
548
|
```
|
|
549
549
|
|
|
550
|
-
####
|
|
550
|
+
#### 5.2. Update the workspace
|
|
551
551
|
|
|
552
552
|
After changing the project file, run `odt-env` again from the workspace root:
|
|
553
553
|
|
|
@@ -559,7 +559,7 @@ This recreates the virtual environment at `ROOT/venv` using the system Python.
|
|
|
559
559
|
|
|
560
560
|
---
|
|
561
561
|
|
|
562
|
-
###
|
|
562
|
+
### 6. Creating portable workspace bundles
|
|
563
563
|
|
|
564
564
|
Portable bundles are useful when you want to prepare an Odoo workspace on an internet-connected machine and reproduce it on another compatible machine without cloning repositories or downloading Python packages again.
|
|
565
565
|
|
|
@@ -577,7 +577,7 @@ The bundle does not contain the virtual environment, database data, logs, backup
|
|
|
577
577
|
|
|
578
578
|
Those machine-specific outputs are recreated on the target machine.
|
|
579
579
|
|
|
580
|
-
####
|
|
580
|
+
#### 6.1. Create a bundle on the build machine
|
|
581
581
|
|
|
582
582
|
On an internet-connected build machine, sync the sources, build the wheelhouse, and create the bundle in one command:
|
|
583
583
|
|
|
@@ -597,7 +597,7 @@ You can also select an explicit output file:
|
|
|
597
597
|
odt-env --sync-all --create-venv --create-bundle ./artifacts/odoo18-production.odt.zip
|
|
598
598
|
```
|
|
599
599
|
|
|
600
|
-
####
|
|
600
|
+
#### 6.1.1. Including uncommitted changes
|
|
601
601
|
|
|
602
602
|
By default, bundle creation stops when a bundled Git repository has uncommitted changes.
|
|
603
603
|
|
|
@@ -607,7 +607,7 @@ To intentionally include those changes in the bundle, use:
|
|
|
607
607
|
odt-env --sync-all --create-venv --create-bundle --allow-dirty-bundle
|
|
608
608
|
```
|
|
609
609
|
|
|
610
|
-
####
|
|
610
|
+
#### 6.2. Create the workspace on the target machine
|
|
611
611
|
|
|
612
612
|
Copy the ZIP to the target machine and import it into an empty directory:
|
|
613
613
|
|
|
@@ -634,7 +634,7 @@ The import operation:
|
|
|
634
634
|
> **Compatibility note**
|
|
635
635
|
> A wheelhouse is platform- and architecture-dependent. Create and import a bundle on compatible systems, for example Linux x86-64 to Linux x86-64. The target machine must have `uv` and access to the configured Python version. When `[virtualenv].managed_python = true`, `uv` may still need network access if that Python interpreter is not already installed or cached. For a fully disconnected target, install the required Python interpreter beforehand or use `managed_python = false`.
|
|
636
636
|
|
|
637
|
-
####
|
|
637
|
+
#### 6.3. Manual wheelhouse workflow
|
|
638
638
|
|
|
639
639
|
The existing manual workflow remains available. After preparing a complete workspace on the build machine, copy the whole workspace and run this command from the copied root:
|
|
640
640
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "1.20.2"
|
|
@@ -2737,6 +2737,11 @@ services:
|
|
|
2737
2737
|
db:
|
|
2738
2738
|
image: postgres:16
|
|
2739
2739
|
restart: unless-stopped
|
|
2740
|
+
logging:
|
|
2741
|
+
driver: local
|
|
2742
|
+
options:
|
|
2743
|
+
max-size: "50m"
|
|
2744
|
+
max-file: "10"
|
|
2740
2745
|
environment:
|
|
2741
2746
|
POSTGRES_DB: postgres
|
|
2742
2747
|
POSTGRES_USER: odoo
|
|
@@ -2748,6 +2753,11 @@ services:
|
|
|
2748
2753
|
build:
|
|
2749
2754
|
context: {build_context}
|
|
2750
2755
|
restart: unless-stopped
|
|
2756
|
+
logging:
|
|
2757
|
+
driver: local
|
|
2758
|
+
options:
|
|
2759
|
+
max-size: "50m"
|
|
2760
|
+
max-file: "10"
|
|
2751
2761
|
depends_on:
|
|
2752
2762
|
- db
|
|
2753
2763
|
ports:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: odoo-devops-tools
|
|
3
|
-
Version: 1.20.
|
|
3
|
+
Version: 1.20.2
|
|
4
4
|
Summary: A small set of utilities for local Odoo development and simple Odoo deployments.
|
|
5
5
|
Author: Roman Lacko
|
|
6
6
|
License-Expression: MIT
|
|
@@ -274,7 +274,7 @@ For subsequent addon updates, use the generated update script:
|
|
|
274
274
|
|
|
275
275
|
The generated script uses `click-odoo-update` with the workspace Odoo configuration.
|
|
276
276
|
|
|
277
|
-
### Local Docker backup and restore
|
|
277
|
+
### 2. Local Docker backup and restore
|
|
278
278
|
|
|
279
279
|
The Local Docker workflow generates Unix shell helpers under `ROOT/docker/local/scripts/` for backing up and restoring the PostgreSQL database and Odoo filestore independently:
|
|
280
280
|
|
|
@@ -297,7 +297,7 @@ The default database name is taken from `[config].db_name` when configured, othe
|
|
|
297
297
|
ODOO_DB_NAME=odoo_test ./docker/local/scripts/backup-db.sh
|
|
298
298
|
```
|
|
299
299
|
|
|
300
|
-
#### Database backup
|
|
300
|
+
#### 2.1. Database backup
|
|
301
301
|
|
|
302
302
|
Create a PostgreSQL custom-format dump under `ROOT/odoo-backups/`:
|
|
303
303
|
|
|
@@ -317,7 +317,7 @@ Pass an output path explicitly when needed:
|
|
|
317
317
|
./docker/local/scripts/backup-db.sh ./odoo-backups/pre-upgrade.dump
|
|
318
318
|
```
|
|
319
319
|
|
|
320
|
-
#### Database restore
|
|
320
|
+
#### 2.2. Database restore
|
|
321
321
|
|
|
322
322
|
Restore a database dump with `pg_restore`:
|
|
323
323
|
|
|
@@ -339,7 +339,7 @@ To restore the same dump into another database without replacing the default dat
|
|
|
339
339
|
ODOO_DB_NAME=odoo_restore ./docker/local/scripts/restore-db.sh ./odoo-backups/pre-upgrade.dump
|
|
340
340
|
```
|
|
341
341
|
|
|
342
|
-
#### Filestore backup
|
|
342
|
+
#### 2.3. Filestore backup
|
|
343
343
|
|
|
344
344
|
Create a compressed tar archive of the selected database filestore:
|
|
345
345
|
|
|
@@ -370,7 +370,7 @@ docker compose stop odoo
|
|
|
370
370
|
docker compose up -d odoo
|
|
371
371
|
```
|
|
372
372
|
|
|
373
|
-
#### Filestore restore
|
|
373
|
+
#### 2.4. Filestore restore
|
|
374
374
|
|
|
375
375
|
Restore a filestore archive:
|
|
376
376
|
|
|
@@ -394,7 +394,7 @@ ODOO_DB_NAME=odoo_restore ./docker/local/scripts/restore-filestore.sh ./odoo-bac
|
|
|
394
394
|
|
|
395
395
|
Database and filestore backups are intentionally separate. This allows either part to be restored independently while still making it possible to create matching database and filestore backups when both are needed.
|
|
396
396
|
|
|
397
|
-
#### Restic filestore backup
|
|
397
|
+
#### 2.5. Restic filestore backup
|
|
398
398
|
|
|
399
399
|
The generated Docker image also includes `restic`, installed from the base image APT repositories. Restic is an additional option intended especially for large filestores where incremental snapshots and deduplication are useful.
|
|
400
400
|
|
|
@@ -442,7 +442,7 @@ List or inspect snapshots through the generic wrapper:
|
|
|
442
442
|
./docker/local/scripts/restic.sh check
|
|
443
443
|
```
|
|
444
444
|
|
|
445
|
-
#### Restic filestore restore
|
|
445
|
+
#### 2.6. Restic filestore restore
|
|
446
446
|
|
|
447
447
|
Restore the latest matching filestore snapshot:
|
|
448
448
|
|
|
@@ -470,7 +470,7 @@ The restore helper removes the target database filestore before restoring it. Wh
|
|
|
470
470
|
|
|
471
471
|
---
|
|
472
472
|
|
|
473
|
-
###
|
|
473
|
+
### 3. Creating a Docker deploy build context
|
|
474
474
|
|
|
475
475
|
Use `--create-docker-deploy` to generate a self-contained Docker build context for CI/CD, testing, staging, production, or another non-local deployment workflow.
|
|
476
476
|
|
|
@@ -511,7 +511,7 @@ docker build -t mycompany/odoo:19.0 docker/deploy
|
|
|
511
511
|
|
|
512
512
|
---
|
|
513
513
|
|
|
514
|
-
###
|
|
514
|
+
### 4. Managing Python requirements
|
|
515
515
|
|
|
516
516
|
The `[virtualenv]` section controls additional Python dependencies used when provisioning both the native virtual environment and generated Docker images.
|
|
517
517
|
|
|
@@ -524,7 +524,7 @@ Use:
|
|
|
524
524
|
|
|
525
525
|
When a package is listed in `requirements`, `odt-env` automatically gives that package priority by ignoring the same package name from collected repository requirements. This means you can usually pin a package version just by adding it to `requirements`.
|
|
526
526
|
|
|
527
|
-
####
|
|
527
|
+
#### 4.1. Add or pin packages
|
|
528
528
|
|
|
529
529
|
Use `requirements` to install additional packages or to force a specific version:
|
|
530
530
|
|
|
@@ -537,7 +537,7 @@ requirements =
|
|
|
537
537
|
|
|
538
538
|
In this example, both packages are included in the generated dependency set and pinned to the specified versions.
|
|
539
539
|
|
|
540
|
-
####
|
|
540
|
+
#### 4.2. Override a package with a different one
|
|
541
541
|
|
|
542
542
|
If you want to replace a package with a different distribution name, add the replacement to `requirements` and skip the original package with `requirements_ignore`.
|
|
543
543
|
|
|
@@ -555,13 +555,13 @@ In this example, `odt-env` installs `psycopg2-binary==2.9.9` and skips `psycopg2
|
|
|
555
555
|
|
|
556
556
|
---
|
|
557
557
|
|
|
558
|
-
###
|
|
558
|
+
### 5. Using system Python instead of managed Python
|
|
559
559
|
|
|
560
560
|
By default, `odt-env` uses `uv` to install and manage the requested Python version.
|
|
561
561
|
|
|
562
562
|
If you already have a suitable system Python installed, you can disable managed Python.
|
|
563
563
|
|
|
564
|
-
####
|
|
564
|
+
#### 5.1. Update the project file
|
|
565
565
|
|
|
566
566
|
Disable managed Python by adding `python_version = 3.11` and `managed_python = false` to the `odoo-project.ini` file.
|
|
567
567
|
|
|
@@ -575,7 +575,7 @@ managed_python = false
|
|
|
575
575
|
python_version = 3.11
|
|
576
576
|
```
|
|
577
577
|
|
|
578
|
-
####
|
|
578
|
+
#### 5.2. Update the workspace
|
|
579
579
|
|
|
580
580
|
After changing the project file, run `odt-env` again from the workspace root:
|
|
581
581
|
|
|
@@ -587,7 +587,7 @@ This recreates the virtual environment at `ROOT/venv` using the system Python.
|
|
|
587
587
|
|
|
588
588
|
---
|
|
589
589
|
|
|
590
|
-
###
|
|
590
|
+
### 6. Creating portable workspace bundles
|
|
591
591
|
|
|
592
592
|
Portable bundles are useful when you want to prepare an Odoo workspace on an internet-connected machine and reproduce it on another compatible machine without cloning repositories or downloading Python packages again.
|
|
593
593
|
|
|
@@ -605,7 +605,7 @@ The bundle does not contain the virtual environment, database data, logs, backup
|
|
|
605
605
|
|
|
606
606
|
Those machine-specific outputs are recreated on the target machine.
|
|
607
607
|
|
|
608
|
-
####
|
|
608
|
+
#### 6.1. Create a bundle on the build machine
|
|
609
609
|
|
|
610
610
|
On an internet-connected build machine, sync the sources, build the wheelhouse, and create the bundle in one command:
|
|
611
611
|
|
|
@@ -625,7 +625,7 @@ You can also select an explicit output file:
|
|
|
625
625
|
odt-env --sync-all --create-venv --create-bundle ./artifacts/odoo18-production.odt.zip
|
|
626
626
|
```
|
|
627
627
|
|
|
628
|
-
####
|
|
628
|
+
#### 6.1.1. Including uncommitted changes
|
|
629
629
|
|
|
630
630
|
By default, bundle creation stops when a bundled Git repository has uncommitted changes.
|
|
631
631
|
|
|
@@ -635,7 +635,7 @@ To intentionally include those changes in the bundle, use:
|
|
|
635
635
|
odt-env --sync-all --create-venv --create-bundle --allow-dirty-bundle
|
|
636
636
|
```
|
|
637
637
|
|
|
638
|
-
####
|
|
638
|
+
#### 6.2. Create the workspace on the target machine
|
|
639
639
|
|
|
640
640
|
Copy the ZIP to the target machine and import it into an empty directory:
|
|
641
641
|
|
|
@@ -662,7 +662,7 @@ The import operation:
|
|
|
662
662
|
> **Compatibility note**
|
|
663
663
|
> A wheelhouse is platform- and architecture-dependent. Create and import a bundle on compatible systems, for example Linux x86-64 to Linux x86-64. The target machine must have `uv` and access to the configured Python version. When `[virtualenv].managed_python = true`, `uv` may still need network access if that Python interpreter is not already installed or cached. For a fully disconnected target, install the required Python interpreter beforehand or use `managed_python = false`.
|
|
664
664
|
|
|
665
|
-
####
|
|
665
|
+
#### 6.3. Manual wheelhouse workflow
|
|
666
666
|
|
|
667
667
|
The existing manual workflow remains available. After preparing a complete workspace on the build machine, copy the whole workspace and run this command from the copied root:
|
|
668
668
|
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "1.20.0"
|
|
File without changes
|
{odoo_devops_tools-1.20.0 → odoo_devops_tools-1.20.2}/odoo_devops_tools.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{odoo_devops_tools-1.20.0 → odoo_devops_tools-1.20.2}/odoo_devops_tools.egg-info/entry_points.txt
RENAMED
|
File without changes
|
{odoo_devops_tools-1.20.0 → odoo_devops_tools-1.20.2}/odoo_devops_tools.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|