当前位置: 首页 > 知识库问答 >
问题:

java.lang.IllegalStateException:迁移未正确处理表

蒋无尘
2023-03-14

java.lang.IllegalStateException:迁移未正确处理data_table

应为:TableInfo{name=“data_table”,columns=url=column{name=“url”,type=“text”,notnull=false,primarykeyposition=0}.....

找到:TableInfo{name='data_table',columns=url=column{name='url',type='',notnull=false,primarykeyposition=0}.....

共有1个答案

公孙嘉禧
2023-03-14

问题是在创建表时,创建者没有显式地指示列。解决问题有两种方法可供选择。

>

  • 您可以在迁移期间创建一个新数据库,并将所有旧数据复制到新数据库中。就像这样。

    static final Migration MIGRATION_1_2 = new Migration(1, 2) {
        @Override
        public void migrate(SupportSQLiteDatabase database) {
            // Create the new table
            database.execSQL(
                    "CREATE TABLE data_table_new (url TEXT");
            // Copy the data
            database.execSQL(
                    "INSERT INTO data_table_new url SELECT url FROM data_table");
            // Remove the old table
            database.execSQL("DROP TABLE data_table");
            // Change the table name to the correct one
            database.execSQL("ALTER TABLE data_table_new RENAME TO data_table");
        }
    };
    

    但在使用大型数据库时效率很低。所以我用第二种方式。

  •  类似资料:
    • 我有致命的异常:java.lang.RuntimeException:计算数据库实时数据时出现异常。在崩溃报告中 为什么TableInfo中的所有内容都是空的 谁能帮我一下,我真的不知道我做错了什么或者是不是一个bug。

    • 预期: 找到TableInfo{name='user',Columns={name=Column{name='name',Type='text',NotNull=False,PrimaryKeyPosition=0},Age=Column{name='Age',Type='integer',NotNull=True,PrimaryKeyPosition=0},ID=Column{name='id'

    • 获取以下异常: 预期: TableInfo{name='chat_table',Columns={message=column{name='message',type='text',affinity='2',notnull=false,primarykeyposition=0},messageStatus=column{name='message status',type='text',affin

    • 本文向大家介绍Django 处理迁移,包括了Django 处理迁移的使用技巧和注意事项,需要的朋友参考一下 示例 Django使用迁移将您对模型所做的更改传播到数据库。django大多数时候都可以为您生成它们。 要创建迁移,请运行: 这将在的migration子模块中创建一个迁移文件app_name。第一个迁移将被命名0001_initial.py,另一个将以开头0002_,然后0003是...

    • 我有以下项目结构: 这最初是一个Eclipse项目,我需要在IntelliJ中导入它。 然而,每次我试图导入它时,IntelliJ都与源根文件夹完全混淆了。 查看java源文件,我在包声明中得到以下错误: 错误:包名称“com.company”与文件路径“src/com.company”不对应 和 错误:包名“com.company”与文件路径“test-src/com.company”不对应 我

    • 我目前正在研究Flyway作为Liquibase的替代方案,但在文档中无法找到以下问题的答案: 假设在生产环境中部署后发现迁移包含错误。回想起来,不应该按原样执行,但已经太晚了。但是,我们想用固定版本的替换迁移,这样从头开始填充的数据库就不会遭受相同的错误。 在 Liquibase 中,您将修复原始变更集并使用