Acerca de los espacios de trabajo de conversión antiguos
Organízate con las colecciones
Guarda y clasifica el contenido según tus preferencias.
Los espacios de trabajo de conversión antiguos son un tipo de espacio de trabajo de conversión más antiguo y limitado. Los espacios de trabajo de conversión antiguos no admiten las funciones de conversión mejoradas con Gemini ni el editor de SQL interactivo. Solo puedes usarlas para convertir tu esquema de origen con la herramienta de migración Ora2Pg.
No recomendamos usar el tipo antiguo de espacios de trabajo de conversión para tus migraciones, ya que presentan otras limitaciones en el flujo de trabajo de conversión:
Espacio de trabajo de conversión interactivo
Espacio de trabajo de conversión antiguo
La conversión de esquemas y objetos de código se realiza en Database Migration Service.
Las conversiones de esquemas y objetos de código se realizan fuera de Database Migration Service mediante la herramienta de migración Ora2Pg.
Puedes aplicar las fuentes convertidas directamente a la base de datos de destino en Database Migration Service.
Eres responsable de aplicar el esquema convertido a la base de datos de destino en tu instancia de destino de Cloud SQL para PostgreSQL.
Puedes probar tu borrador de esquema y código directamente en Database Migration Service
para asegurarte de que se pueden aplicar correctamente a tu instancia de destino.
No puedes probar el esquema y el código del borrador sin que afecte a la instancia de destino.
Añade automáticamente las columnas rowid que faltan en las tablas que no tienen claves principales ni restricciones únicas.
Debe añadir las claves principales que faltan a las tablas de destino después de aplicar el esquema.
Tabla 1: Comparación de las funciones del espacio de trabajo de conversión
Usar espacios de trabajo de conversión antiguos
Si tu situación requiere el uso de espacios de trabajo de conversiones antiguos, modifica el proceso de migración con las siguientes acciones:
Escribe un archivo de configuración de Ora2Pg.
Consulta la
documentación de Ora2Pg para obtener información sobre cómo usar la herramienta de conversión Ora2Pg. Despliega las siguientes secciones para ver la lista completa de directivas admitidas en Database Migration Service.
Configuración de Ora2Pg admitida en Database Migration Service
Database Migration Service admite los siguientes elementos de configuración para los archivos de Ora2Pg:
BOOLEAN_VALUES
DATA_TYPE
DEFAULT_NUMERIC
ENABLE_MICROSECOND
EXPORT_SCHEMA
MODIFY_STRUCT
MODIFY_TYPE
PG_INTEGER_TYPE
PG_NUMERIC_TYPE
PG_SCHEMA
PRESERVE_CASE
REPLACE_AS_BOOLEAN
REPLACE_COLS
REPLACE_TABLES
REPLACE_ZERO_DATE
SCHEMA
El servicio de migración de bases de datos usa perfiles de conexión para definir los detalles de la conectividad, por lo que no es necesario que definas la siguiente información en tu archivo de configuración de Oracle a PostgreSQL:
ORACLE_DSN
ORACLE_HOME
ORACLE_PWD
ORACLE_USER
PG_DSN
PG_PWD
PG_USER
Además, Database Migration Service no usa la directiva de configuración WHERE
para limitar los registros que se van a migrar.
Aplica manualmente el esquema convertido a la base de datos de destino.
Después de crear la configuración de Ora2Pg y el espacio de trabajo, debes aplicar el código generado directamente en la base de datos de destino.
Migrar tablas sin claves principales.
Database Migration Service solo migra las tablas que tienen claves principales.
Si la base de datos de origen incluye tablas que no tienen claves principales, debe crear manualmente claves principales o restricciones únicas en las tablas convertidas de la base de datos de destino después de aplicar el esquema convertido. Despliega la sección siguiente para obtener más información.
Añadir restricciones de clave principal en la base de datos de destino
Para migrar tablas de Oracle sin claves principales, haga lo siguiente:
Conéctate a tu instancia de Cloud SQL de destino con un cliente SQL. Puedes usar los siguientes métodos:
psql cliente. Puedes usar este método para conectarte a la IP privada de tu instancia, pero es posible que tengas que crear una máquina virtual de Compute Engine.
comando gcloud sql connect. Este comando solo funciona en instancias de Cloud SQL que tengan habilitada una dirección IP pública.
Crea las restricciones de clave principal que faltan en tus tablas. Para obtener más información sobre las claves principales, consulta
Claves principales en la documentación de PostgreSQL.
También puedes desplegar las siguientes secciones para ver comandos SQL de ejemplo:
Crear claves principales con columnas ya creadas
Es posible que tu tabla ya tenga una clave principal lógica basada en una columna o en una combinación de columnas. Por ejemplo, puede haber columnas con una restricción única o un índice configurado. Usa estas columnas para generar una nueva clave principal para las tablas de tu base de datos de origen. Por ejemplo:
ALTERTABLETABLE_NAMEADDPRIMARYKEY(COLUMN_NAME);
Crear una clave principal con todas las columnas
Si no tienes una restricción que pueda servir como clave principal, crea claves principales con todas las columnas de la tabla. Asegúrate de no superar la longitud máxima de la clave principal que permite tu instancia de PostgreSQL. Por ejemplo:
Al crear una clave principal compuesta como esta, debes enumerar explícitamente todos los nombres de columna que quieras usar. No es posible usar una instrucción
para obtener todos los nombres de las columnas con este fin.
Crear una restricción UNIQUE con la pseudocolumna ROWID
Las bases de datos de Oracle usan la
pseudocolumna ROWID para almacenar
la ubicación de cada fila de una tabla. Para migrar tablas de Oracle que no tengan claves principales, puedes añadir una columna ROWID en la base de datos PostgreSQL de destino. Database Migration Service rellena la columna con los valores numéricos correspondientes de la pseudocolumna ROWID de Oracle de origen.
Para añadir la columna y definirla como clave principal, ejecuta lo siguiente:
Una vez que hayas completado el flujo de trabajo de conversión con el espacio de trabajo antiguo, puedes continuar con los procedimientos de migración estándar. Consulta
Crear una tarea de migración.
[[["Es fácil de entender","easyToUnderstand","thumb-up"],["Me ofreció una solución al problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Es difícil de entender","hardToUnderstand","thumb-down"],["La información o el código de muestra no son correctos","incorrectInformationOrSampleCode","thumb-down"],["Me faltan las muestras o la información que necesito","missingTheInformationSamplesINeed","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-08-21 (UTC)."],[],[],null,["# About legacy conversion workspaces\n\nLegacy conversion workspaces are an older, more limited type of conversion\nworkspaces. Legacy conversion workspaces don't support Gemini-enhanced\nconversion features or the interactive SQL editor. You can only use them to convert your\nsource schema with the Ora2Pg migration tool.\n| **Important:** Database Migration Service supports Ora2Pg versions `21.1` - `23.2`.\n\nWe don't recommend using the legacy type of conversion workspaces for your\nmigrations as they present multiple other limitations to the conversion\nworkflow:\n\nUse legacy conversion workspaces\n--------------------------------\n\nIf your scenario requires the use of legacy conversion workspaces,\nmodify the migration process with the following actions:\n\n1. Write an Ora2Pg configuration file.\n\n Refer to the\n [Ora2Pg documentation](https://ora2pg.darold.net/documentation.html#CONFIGURATION) for guidance on how to use\n the Ora2Pg conversion tool. Expand the following sections for the full\n list of directives supported in Database Migration Service. \n\n #### Ora2Pg configuration supported in Database Migration Service\n\n Database Migration Service supports the following configuration items for Ora2Pg files:\n - `BOOLEAN_VALUES`\n - `DATA_TYPE`\n - `DEFAULT_NUMERIC`\n - `ENABLE_MICROSECOND`\n - `EXPORT_SCHEMA`\n - `MODIFY_STRUCT`\n - `MODIFY_TYPE`\n - `PG_INTEGER_TYPE`\n - `PG_NUMERIC_TYPE`\n - `PG_SCHEMA`\n - `PRESERVE_CASE`\n - `REPLACE_AS_BOOLEAN`\n - `REPLACE_COLS`\n - `REPLACE_TABLES`\n - `REPLACE_ZERO_DATE`\n - `SCHEMA`\n\n Database Migration Service uses connection profiles to define\n connectivity details, so you don't need to define the following information\n in your Or2Pg configuration file:\n - `ORACLE_DSN`\n - `ORACLE_HOME`\n - `ORACLE_PWD`\n - `ORACLE_USER`\n - `PG_DSN`\n - `PG_PWD`\n - `PG_USER`\n\n Additionally, Database Migration Service doesn't use the `WHERE`\n configuration directive to limit the records to migrate.\n2. [Create a legacy conversion workspace, and upload the Ora2Pg file to convert\n your schema](/database-migration/docs/oracle-to-postgresql/create-conversion-workspace#legacy-ws).\n3. Manually apply converted schema to the destination database.\n\n\n After you create the Ora2Pg configuration and create the workspace,\n you must apply the generated code by yourself directly on the destination\n database.\n | **Important:** With legacy conversion workspaces, you can't test the schema before you migrate. If you encounter any issues when you apply the converted schema, you need to clear the faulty schema from the destination database, adjust your Ora2Pg file, and re-create the legacy conversion workspace with the Ora2Pg file.\n4. Migrate tables without primary keys.\n\n\n Database Migration Service migrates only tables that have primary keys.\n If your source database includes tables that don't have primary keys,\n you need to manually create primary keys or unique constraints in the\n converted tables in the destination database after you\n apply the converted schema. Expand the following section for more details. \n\n #### Add primary key constraints in the destination database\n\n To migrate Oracle tables without primary keys, do the following:\n 1. Connect to your destination Cloud SQL instance with a SQL client. You can use the following methods:\n - [`psql` client](/sql/docs/postgres/connect-admin-ip). You can use this method to connect to your instance private IP, but it might require that you create a Compute Engine virtual machine.\n - [`gcloud sql connect`](/sdk/gcloud/reference/sql/connect) command. This command works only for Cloud SQL instances that have a public IP address enabled.\n 2. Create the missing primary key constraints for your tables. For more information about primary keys, see [Primary Keys](https://www.postgresql.org/docs/current/ddl-constraints.html#DDL-CONSTRAINTS-PRIMARY-KEYS) in the PostgreSQL documentation.\n\n You can also expand the following sections to see sample SQL commands: \n\n #### Create primary keys using existing columns\n\n Your table might already have a logical primary key based on a\n column or a combination of columns. For example, there might be\n columns with a unique constraint or index configured. Use these\n columns to generate a new primary key for tables in your source\n database. For example: \n\n ```sql\n ALTER TABLE TABLE_NAME\n ADD PRIMARY KEY (COLUMN_NAME);\n ```\n\n \u003cbr /\u003e\n\n #### Create a primary key using all columns\n\n If you don't have a pre-existing constraint that could serve as a\n primary key, create primary keys using all columns of the table. Make\n sure that you don't exceed the maximum length of the primary key\n allowed by your PostgreSQL instance. For example: \n\n ```sql\n ALTER TABLE TABLE_NAME\n ADD PRIMARY KEY (COLUMN_NAME_1, COLUMN_NAME_2, COLUMN_NAME_3, ...);\n ```\n\n When creating a composite primary key like this, you need to explicitly\n list all column names you want to use. It's not possible to use a statement\n to retrieve all column names for this purpose. \n\n #### Create a unique constraint with the `ROWID` pseudocolumn\n\n Oracle databases use the\n [`ROWID` pseudocolumn](https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/ROWID-Pseudocolumn.html) to store\n the location of each row in a table. To migrate Oracle tables\n that don't have primary keys, you can add a `ROWID`\n column in the destination PostgreSQL database. Database Migration Service\n populates the column with the corresponding numeric values from\n the source Oracle `ROWID` pseudocolumn.\n\n To add the column and to set it as the primary key, run the following: \n\n ```sql\n ALTER TABLE TABLE_NAME ADD COLUMN rowid numeric(33,0) NOT NULL;\n CREATE SEQUENCE TABLE_NAME_rowid_seq INCREMENT BY -1 START WITH -1 OWNED BY TABLE_NAME.rowid;\n ALTER TABLE TABLE_NAME ALTER COLUMN rowid SET DEFAULT nextval('\u003cvar translate=\"no\"\u003eTABLE_NAME\u003c/var\u003e_rowid_seq');\n ALTER TABLE TABLE_NAME ADD CONSTRAINT CONSTRAINT_DISPLAY_NAME PRIMARY KEY (rowid);\n ```\n\nWhat's next\n-----------\n\nAfter you perform the conversion workflow with the legacy workspace,\nyou can proceed with the standard migration procedures. See\n[Create a migration job](/database-migration/docs/oracle-to-postgresql/create-migration-job)."]]