sql >> Database >  >> RDS >> Mysql

Een bestaande MyISAM-database converteren naar InnoDB met Django

Dit kan helpen:

from django.core.management.base import BaseCommand
from django.db import connections


class Command(BaseCommand):

    def handle(self, database="default", *args, **options):

        cursor = connections[database].cursor()

        cursor.execute("SHOW TABLE STATUS")

        for row in cursor.fetchall():
            if row[1] != "InnoDB":
                print "Converting %s" % row[0],
                print cursor.execute("ALTER TABLE %s ENGINE=INNODB" % row[0])

Voeg dat toe aan je app onder de mappen management/commands/ Dan kun je al je tabellen converteren met een manage.py commando:

python manage.py convert_to_innodb


  1. Probleem met mysqldump:--defaults-extra-file optie werkt niet zoals verwacht

  2. Waarom is de AVG-rijlengte 4 keer zo groot als verwacht?

  3. mysqldump-fout:Pakket groter dan max_allowed_packet'

  4. Oracle SQL plus hoe de opdracht in het SQL-bestand te beëindigen?