Quiero una migración para crear un clon de una tabla existente simplemente con el sufijo del nombre, incluidos todos los índices de la tabla original.¿Cómo podría clonar una tabla de base de datos a través de la migración de Rails?
Así que hay una tabla de "instantáneas" y quiero crear "snapshots_temp" como una copia exacta de la tabla (no los datos, solo el esquema de la tabla, pero incluyendo los índices).
Podría simplemente copiar y pegar el bloque fuera del archivo schema.rb y cambiarle el nombre manualmente.
Pero no estoy seguro para cuando se aplica esta migración si la definición de schema.rb aún será precisa. Otro desarrollador podría haber cambiado la tabla y no quiero tener que actualizar mi script de migración.
Entonces, ¿cómo podría obtener el esquema de la tabla en tiempo de ejecución? Esencialmente, ¿cómo 'rake schema: dump' hace ingeniería inversa de la tabla para que yo pueda hacer lo mismo en mi migración? (pero cambiando el nombre de la tabla).
Buena llamada. "Use LIKE para crear una tabla vacía según la definición de otra tabla, incluidos los atributos e índices de columna definidos en la tabla original" http://dev.mysql.com/doc/refman/5.1/en/createtable. html –
Funciona con MySQL (y posiblemente con la mayoría de las bases de datos) pero si usa Sqlite, no funcionará. Me encontré con este problema en el entorno de desarrollo. La producción está bien (es MySQL). – MiniQuark
Awesome gracias. Tenga en cuenta que su tabla copiada obtendrá los índices, pero no las claves externas. Tendrás que volver a crearlos por separado. –