mirror of
				https://github.com/janeczku/calibre-web
				synced 2025-11-04 09:13:02 +00:00 
			
		
		
		
	Update migration routine
This commit is contained in:
		@@ -21,15 +21,16 @@ from __future__ import division, print_function, unicode_literals
 | 
				
			|||||||
import os
 | 
					import os
 | 
				
			||||||
import sys
 | 
					import sys
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from sqlalchemy import exc, Column, String, Integer, SmallInteger, Boolean, BLOB, JSON
 | 
					from sqlalchemy import Column, String, Integer, SmallInteger, Boolean, BLOB, JSON
 | 
				
			||||||
from sqlalchemy.exc import OperationalError
 | 
					from sqlalchemy.exc import OperationalError
 | 
				
			||||||
 | 
					from sqlalchemy.sql.expression import text
 | 
				
			||||||
try:
 | 
					try:
 | 
				
			||||||
    # Compatibility with sqlalchemy 2.0
 | 
					    # Compatibility with sqlalchemy 2.0
 | 
				
			||||||
    from sqlalchemy.orm import declarative_base
 | 
					    from sqlalchemy.orm import declarative_base
 | 
				
			||||||
except ImportError:
 | 
					except ImportError:
 | 
				
			||||||
    from sqlalchemy.ext.declarative import declarative_base
 | 
					    from sqlalchemy.ext.declarative import declarative_base
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from . import constants, cli, logger, ub
 | 
					from . import constants, cli, logger
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
log = logger.create()
 | 
					log = logger.create()
 | 
				
			||||||
@@ -368,17 +369,17 @@ def _migrate_table(session, orm_class):
 | 
				
			|||||||
                    column_default = ""
 | 
					                    column_default = ""
 | 
				
			||||||
                else:
 | 
					                else:
 | 
				
			||||||
                    if isinstance(column.default.arg, bool):
 | 
					                    if isinstance(column.default.arg, bool):
 | 
				
			||||||
                        column_default = ("DEFAULT %r" % int(column.default.arg))
 | 
					                        column_default = "DEFAULT {}".format(int(column.default.arg))
 | 
				
			||||||
                    else:
 | 
					                    else:
 | 
				
			||||||
                        column_default = ("DEFAULT '%r'" % column.default.arg)
 | 
					                        column_default = "DEFAULT `{}`".format(column.default.arg)
 | 
				
			||||||
                if isinstance(column.type, JSON):
 | 
					                if isinstance(column.type, JSON):
 | 
				
			||||||
                    column_type = "JSON"
 | 
					                    column_type = "JSON"
 | 
				
			||||||
                else:
 | 
					                else:
 | 
				
			||||||
                    column_type = column.type
 | 
					                    column_type = column.type
 | 
				
			||||||
                alter_table = "ALTER TABLE %s ADD COLUMN `%s` %s %s" % (orm_class.__tablename__,
 | 
					                alter_table = text("ALTER TABLE %s ADD COLUMN `%s` %s %s" % (orm_class.__tablename__,
 | 
				
			||||||
                                                                        column_name,
 | 
					                                                                        column_name,
 | 
				
			||||||
                                                                        column_type,
 | 
					                                                                        column_type,
 | 
				
			||||||
                                                                        column_default)
 | 
					                                                                        column_default))
 | 
				
			||||||
                log.debug(alter_table)
 | 
					                log.debug(alter_table)
 | 
				
			||||||
                session.execute(alter_table)
 | 
					                session.execute(alter_table)
 | 
				
			||||||
                changed = True
 | 
					                changed = True
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user