• J
    Move DatabaseAlreadyExists detection to DB adapter · 69700c9e
    John Hawthorn 提交于
    Previously it was the responsibility of the database tasks to translate
    the invalid statement from creating a duplicate database into an
    ActiveRecord::Tasks::DatabaseAlreadyExists error.
    
    It's actually easier for us to do this detection inside of the adapter,
    where we already do a case statement on the return code to translate the
    error.
    
    This commit introduces ActiveRecord::DatabaseAlreadyExists, a subclass
    of StatementInvalid, and updates both AbstractMysqlAdapter and
    PostgresqlAdapter to return this more specific exception in that case.
    
    Because this is a subclass of the old exception, StatementInvalid, it
    should be backwards compatible with any code expecting that from
    create_database.
    
    This works for both create_database and exectute("CREATE DATABASE")
    69700c9e
mysql_rake_test.rb 13.1 KB