sql >> Database teknologi >  >> RDS >> PostgreSQL

Migrering af database fra Postgres til MS SQL Server

De metadata, der returneres af PostgreSQL ODBC-driveren, er ikke afbildet korrekt af filen SSMS ProviderDescriptors.xml. Denne fil er placeret i mappen "C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\CommonExtensions\Microsoft\SSIS\150\ProviderDescriptors" på min SSMS-installation.

Brug af oplysninger hentet fra dette spørgsmål og MS blogindlæg , var jeg i stand til at importere fra PostgreSQL med System.Data.Odbc.OdbcConnection ProviderDescriptor konfigurationssektionen nedenfor. Jeg ændrede MaximumLengthColumnName , NumericPrecisionColumnName , og NumericScaleColumnName attributværdier i System.Data.Odbc.OdbcConnection ColumnSchemaAttributes for at matche de faktiske navne, der returneres af PosgreSQL ODBC-driveren (LENGTH og PRECISION , SCALE ).

<dtm:ProviderDescriptor SourceType="System.Data.Odbc.OdbcConnection">

    <dtm:SchemaNames
        TablesSchemaName="Tables"
        ColumnsSchemaName="Columns" 
        ViewsSchemaName="Views" 
    />

    <dtm:TableSchemaAttributes
        TableCatalogColumnName="TABLE_CAT"
        TableSchemaColumnName="TABLE_SCHEM"
        TableNameColumnName="TABLE_NAME"
        TableTypeColumnName="TABLE_TYPE"
        TableDescriptor="TABLE"
        ViewDescriptor="VIEW"
        SynonymDescriptor ="SYNONYM"
        NumberOfTableRestrictions="3"
    />

    <dtm:ColumnSchemaAttributes
        NameColumnName = "COLUMN_NAME"
        OrdinalPositionColumnName="ORDINAL_POSITION"
        DataTypeColumnName = "TYPE_NAME"
        MaximumLengthColumnName = "LENGTH"
        NumericPrecisionColumnName = "PRECISION"
        NumericScaleColumnName = "SCALE"
        NullableColumnName="NULLABLE"
        NumberOfColumnRestrictions="4"
    />

    <dtm:Literals
        PrefixQualifier="&quot;"
        SuffixQualifier="&quot;"
        CatalogSeparator="."
        SchemaSeparator="."
    />
</dtm:ProviderDescriptor>

Du vil måske gemme den originale ProviderDescriptors.xml fil og vend tilbage til den, når dine importopgaver er fuldført.




  1. Seneste PostgreSQL-tendenser:Mest tidskrævende opgaver og vigtige målinger at spore

  2. MySQL bredde- og længdegradstabelopsætning

  3. Vælg rækker, hvor kolonneværdien er ændret

  4. Tidsstempel med en millisekunds præcision:Sådan gemmer du dem i MySQL