Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Khung thực thể có di chuyển cơ sở dữ liệu mysql không thành công khi tạo chỉ mục

tôi gặp phải vấn đề tương tự, sau khi tôi đọc các bài đăng, tôi đã quyết định tạo một lớp kế thừa củaMySqlMigrationSqlGenerator và ghi đè ghi đè được bảo vệ MigrationStatement Generate (op CreateIndexOperation) , sau đó trên cấu hình di chuyển, tôi thêm: SetSqlGenerator ("MySql.Data.MySqlClient", myMigrationSQLGenerator ()) mới;

đây là mã của lớp:

public class myMigrationSQLGenerator : MySqlMigrationSqlGenerator
{
    private string TrimSchemaPrefix ( string table )
    {
        if ( table.StartsWith ( "dbo." ) )
            return table.Replace ( "dbo.", "" );
        return table;
    }

    protected override MigrationStatement Generate ( CreateIndexOperation op )
    {
        var u = new MigrationStatement ( );
        string unique = ( op.IsUnique ? "UNIQUE" : "" ), columns = "";
        foreach ( var col in op.Columns )
        {
            columns += ( $"`{col}` DESC{( op.Columns.IndexOf ( col ) < op.Columns.Count - 1 ? ", " : "" )}" );
        }
        u.Sql = $"CREATE {unique} INDEX `{op.Name}` ON `{TrimSchemaPrefix ( op.Table )}` ({columns}) USING BTREE";
        return u;
    }
}

và đây là mã trên Migrations \ Configuration.cs :

    public Configuration ()
    {           
        AutomaticMigrationsEnabled = false;
        SetSqlGenerator ( "MySql.Data.MySqlClient", new myMigrationSQLGenerator ( ) );
    }

công việc này đối với tôi.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Không thể kết nối với MySQL Workbench trên mac. Không thể kết nối với máy chủ MySQL trên '127.0.0.1' (61) Mac Macintosh

  2. Không thể xóa hoặc cập nhật hàng mẹ:ràng buộc khóa ngoại không thành công

  3. Tạo một chỉ mục trên một bảng sản xuất MySQL khổng lồ mà không cần khóa bảng

  4. virtualenv, mysql-python, pip:có ai biết cách không?

  5. CHÈN VÀO với SubQuery MySQL