| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Lines of code | 762 |
| Technical Name |
gb_scheduled_datwarehouse_sync |
| License | OPL-1 |
| Website | https://pokutsoft.com/ |
| Versions | 18.0 19.0 |
Data Warehouse Sync
Scheduled BYOK export of Odoo tables to your Postgres / BigQuery / Snowflake
BI tools struggle to reach Odoo without hammering the live database, and copying data out by hand is fragile. This module pushes selected Odoo models to your OWN data warehouse on a schedule so your analytics stack reads from the warehouse instead. It is bring-your-own-key: you supply the target connection and credentials and nothing is hosted or proxied by us. PostgreSQL targets sync live via psycopg2 with automatic DDL and upsert, while BigQuery and Snowflake targets generate timestamped NDJSON load files for your own loader. Pick models, map fields, choose full or incremental (write_date watermark) sync, and an hourly or daily cron keeps the warehouse fresh — with a full run history of rows, duration and errors. Built for data teams, analysts and BI leads.
Key Features
BYOK warehouse targets
gb.dwh.target holds a warehouse_type of PostgreSQL, BigQuery or Snowflake with your own host, database, schema, credentials and SSL mode. Nothing is hosted by us — you supply the connection. action_test_connection opens a real psycopg2 session and runs SELECT 1 so you can validate a Postgres target before scheduling it.
Live PostgreSQL sync with upsert
_sync_postgres connects via psycopg2 and writes straight into your warehouse using INSERT ... ON CONFLICT (id) DO UPDATE, so re-runs upsert rather than duplicate. execute_values batches the writes for throughput, and a full-refresh run TRUNCATEs the destination table first.
File export for BigQuery and Snowflake
_sync_file_export writes timestamped NDJSON files to the target's export_path, one JSON object per row, ready for your own BYOK loader (bq load, Snowflake COPY). This keeps cloud-warehouse credentials in your tooling, not in Odoo — honest about what runs where.
Per-table model and field mapping
Each gb.dwh.table picks an ir.model, an optional safe-eval domain filter and a destination name. gb.dwh.field maps each selected ir.model.fields to a destination column, and action_add_all_fields populates every stored, non-x2many field in one click.
Automatic DDL and type mapping
For Postgres targets the sync runs CREATE SCHEMA / CREATE TABLE IF NOT EXISTS and ALTER TABLE ADD COLUMN IF NOT EXISTS so the destination always matches your selection. A _TYPE_MAP converts Odoo ttypes to SQL types (integer to BIGINT, monetary to NUMERIC, datetime to TIMESTAMP, json to JSONB).
Full or incremental sync
sync_mode is full refresh or incremental. In incremental mode _read_records adds a write_date > watermark clause and advances the stored watermark to the highest write_date exported, so after the first load only changed records ship — fast and low-impact on Odoo.
Batched reads, configurable size
_read_records pages through matching IDs in batch_size chunks (default 2000) and read()s each page, serialising many2one tuples to their id and dates to ISO strings. Large models export without loading everything into memory at once.
Scheduling, run-now wizard and history
The cron_sync job runs every target whose schedule matches hourly or daily, while gb.dwh.run.wizard triggers an ad-hoc sync of chosen tables (with optional raise-on-error). Every gb.dwh.run records mode, row_count, duration, state (running/done/error) and the captured error_message for monitoring.
Use Cases
Screenshots
Run Sync Now
Why Choose This Module
BI tools struggle to reach Odoo without hammering the live database. This module pushes selected Odoo models to your own data warehouse on a schedule, so your analytics stack reads from the warehouse instead. It's bring-your-own-key: you supply the target connection and credentials — nothing is hosted or proxied by us.
Specifications
- Compatible: Odoo 18.0 / 19.0
- License: OPL-1
- Languages: English
- Author: Pokutsoft
- Dependencies: base
- Support: support@pokutsoft.com
Update date: 2026-07-02
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Lines of code | 762 |
| Technical Name |
gb_scheduled_datwarehouse_sync |
| License | OPL-1 |
| Website | https://pokutsoft.com/ |
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module