fix_schema.php 1.1 KB

1234567891011121314151617181920212223242526272829303132
  1. <?php
  2. // Paranda D7->D11 migratsiooni skeemi erinevused:
  3. // 1. langcode varchar(32) -> varchar(12) kõigil node field tabelitel
  4. // 2. field_nimi_value varchar(1) -> varchar(255) (name tüübi artefakt)
  5. use Drupal\Core\Database\Database;
  6. $conn = Database::getConnection();
  7. // 1. langcode 32 -> 12
  8. $tables = $conn->query(
  9. "SELECT DISTINCT table_name FROM information_schema.columns
  10. WHERE table_schema = :db AND column_name = 'langcode' AND column_type = 'varchar(32)'
  11. AND (table_name LIKE 'node__%' OR table_name LIKE 'node_revision__%')",
  12. [':db' => $conn->getConnectionOptions()['database']]
  13. )->fetchCol();
  14. foreach ($tables as $table) {
  15. $conn->query("ALTER TABLE {{$table}} MODIFY langcode varchar(12) NOT NULL");
  16. echo "langcode 12: $table\n";
  17. }
  18. // 2. field_nimi_value varchar(1) -> varchar(255)
  19. foreach (['node__field_nimi', 'node_revision__field_nimi'] as $table) {
  20. try {
  21. $conn->query("ALTER TABLE {{$table}} MODIFY field_nimi_value varchar(255)");
  22. echo "field_nimi_value 255: $table\n";
  23. } catch (\Exception $e) {
  24. echo "skip $table: " . $e->getMessage() . "\n";
  25. }
  26. }
  27. echo "done\n";