Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix for #48 #66

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

fix for #48 #66

wants to merge 1 commit into from

Conversation

parisholley
Copy link

@parisholley parisholley commented Oct 21, 2021

Description of change

see #48
the problem is that the mongo extractor is outputting a SCHEMA for every record, which may be a partial object. when this is consumed by the postgres loader, it fails because the schema keeps getting overwritten and it can't find the key_properties. i generate a catalog json with my own python script vs relying on this tap to generate it on the fly. i can't say for sure that this is the right solution (perhaps we should write the key_properties every time), but it is the root cause

Command

mongo meltano elt --job_id mongo --catalog transformed.json tap-mongodb target-postgres

Catalog

{
  "streams": [
    {
      "metadata": [
        {
          "breadcrumb": {},
          "metadata": {
            "database-name": "db",
            "replication-method": "FULL_TABLE",
            "selected": true,
            "tap-mongodb.projection": "{\"_id\": 1, \"name\": 1}"
          }
        }
      ],
      "schema": {
        "key_properties": [
          "_id"
        ],
        "properties": {
          "_id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      }
    }
  ]
}

For those looking for a fix before this is merged, you can use this as your pip_url instead of the standard tap-mongodb package:

git+https://github.com/parisholley/tap-mongodb.git@5e5f95649d4705205b654a1b09a533f006e0126e

@cmerrick
Copy link

Hi @parisholley, thanks for your contribution!

In order for us to evaluate and accept your PR, we ask that you sign a contribution license agreement. It's all electronic and will take just minutes.

@cmerrick
Copy link

You did it @parisholley!

Thank you for signing the Singer Contribution License Agreement.

@je-kr
Copy link

je-kr commented Oct 24, 2022

Hi,

This fix would be very useful, any idea on when it could be merged ?

Thank you !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants