标签: database-migration

如何在Ruby on Rails 3中立即恢复所有迁移?

我试着跑:

rake db:migrate VERSION=0
Run Code Online (Sandbox Code Playgroud)

它还原除了最后一个之外的所有迁移.

然后我试着跑:

rake db:migrate:down VERSION=<timestamp_of_last_migration>
Run Code Online (Sandbox Code Playgroud)

但它也没有恢复.为什么?

是否有一个命令可以同时运行所有down方法?

migration rake ruby-on-rails database-migration ruby-on-rails-3

16
推荐指数
3
解决办法
8337
查看次数

将记录从PostgreSQL导入MySQL

想知道是否有人有任何见解或推荐的工具从PostgreSQL数据库导出记录并将它们导入MySQL数据库.我相信表结构是100%相同的.

思考?谢谢!

mysql sql postgresql database-migration

16
推荐指数
2
解决办法
1万
查看次数

在现有数据库上使用liquibase

我们有一个现有的生产数据库.我们决定使用liquibase进行所有进一步更新并创建任何新数据库(如开发或集成).

我们已经基于现有的生产模式创建了liquibase脚本(以创建任何新的数据库,如开发,集成等).在该脚本之上,我们还添加了两个更新.展望生产数据库的所有进一步更新将由liquibase完成.

如果我们在生产中执行liquibase,它将尝试完成所有已经存在的完整更改,这不应该发生,因为生产已经拥有除了两个新更新之外的所有内容.现在我们想使用liquibase将这两个更改单独更新为制作.

我们怎么做到这一点?

database database-migration liquibase

16
推荐指数
1
解决办法
4747
查看次数

如何编写迁移来撤消Laravel中的唯一约束?

我这样做是为了unique在表格中创建我的电子邮件字段.

$table->unique('email');

我试过了

public function up()
{
    Schema::table('contacts', function(Blueprint $table)
    {
        $table->dropUnique('email');
    });
}
Run Code Online (Sandbox Code Playgroud)

然后,当我运行php artisan migrate时,我得到了这个

在此输入图像描述

它告诉我它不在那里,但我百分百肯定它就在那里.

在此输入图像描述

如何编写迁移以撤消该操作?

php database-migration laravel laravel-4 laravel-5

16
推荐指数
2
解决办法
8949
查看次数

如果字段选项列表发生更改,请停止Django创建迁移

我有一个名为"foocore"的django核心应用程序.

有几个可选的类似插件的应用程序.例如"superfoo".

在我的例子中,每个插件都在CharField模型中添加了一个新选项,该模型属于"foocore".

如果选择列表发生更改,Django迁移会检测更改.

我认为这不是必要的.至少有一位其他开发者认为相同:

https://code.djangoproject.com/ticket/22837

class ActivePlugin(models.Model):
    plugin_name = models.CharField(max_length=32, choices=get_active_plugins())
Run Code Online (Sandbox Code Playgroud)

获取选择的代码:

class get_active_plugins(object):
    def __iter__(self):
        for item in ....:
            yield item
Run Code Online (Sandbox Code Playgroud)

核心"foocore"在几个项目中使用,每个安装都有一组不同的插件.Django试图创建无用的迁移....

有办法解决这个问题吗?

python django database-migration

16
推荐指数
3
解决办法
1977
查看次数

如何使用Yii2中的Migration创建复合主键?

我试图运行yii migrate,但它显示以下错误:

create table news-cate ...Exception: SQLSTATE[42000]: Syntax error or access violation: 1075 Incorrect table definition; there can be only one auto column and it must be defined as a key
The SQL being executed was: CREATE TABLE `news-cate` (
        `news-id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
        `cate-id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

class m150821_083020_create_newscate_table extends Migration
{
    public function safeUp()
    {
        $this->createTable('news-cate', [
            'news-id' => $this->primaryKey(),
            'cate-id' => $this->primaryKey(),
        ]);
        $this->addForeignKey("fk_news_cate_nid", "news-cate", "news-id", "news", "id", …
Run Code Online (Sandbox Code Playgroud)

sql database-migration yii2

16
推荐指数
2
解决办法
1万
查看次数

将Django模型字段的类型从CharField更改为ForeignKey

我需要将我的一个Django模型中的字段类型更改CharFieldForeignKey.这些字段已经填充了数据,所以我想知道这样做的最佳或正确方法是什么.我可以只更新字段类型并进行迁移,还是有任何可能的"陷阱"需要注意?注意:我只使用vanilla Django管理操作(makemigrationsmigrate),而不是南方.

django foreign-keys database-migration

16
推荐指数
3
解决办法
8629
查看次数

Django CommandError:App'polls'有迁移

试着按照Django项目的教程.

我遇到的问题是执行命令时: python manage.py sql polls我收到错误:

CommandError:App'polls'具有迁移功能.只有sqlmigrate和sqlflush命令可以在应用程序进行迁移时使用

到目前为止,我似乎无法在互联网或本网站上找到任何指南来解决该计划.

python migration django database-migration manage.py

15
推荐指数
2
解决办法
2万
查看次数

Laravel:在另一个数据库上运行迁移

在我的应用程序中,每个用户都有自己的数据库,用户注册后创建.连接和数据库数据(数据库名称,用户名,密码)保存在默认数据库的表中.

try{
    DB::transaction(function() {

        $website = new Website();
        $website->user_id = Auth::get()->id;
        $website->save();

        $database_name = 'website_'.$website->id;

        DB::statement(DB::raw('CREATE DATABASE ' . $database_name));

        $websiteDatabase = new WebsiteDatabase();
        $websiteDatabase->website_id = $website->id;
        $websiteDatabase->database_name = $database_name;
        $websiteDatabase->save();

    });
} catch(\Exception $e) {
    echo $e->getMessage();
}
Run Code Online (Sandbox Code Playgroud)

现在我想在新用户的数据库创建后运行一些迁移.

可能吗?

谢谢

database-migration multi-tenant laravel laravel-4

15
推荐指数
4
解决办法
2万
查看次数

在Django数据迁移中手动提交

我想写一个数据迁移,我在这里以较小的批量修改一个大表中的所有行,以避免锁定问题.但是,我无法弄清楚如何在Django迁移中手动提交.每次我试着跑,commit我得到:

TransactionManagementError:当'atomic'块处于活动状态时禁止使用.

AFAICT,数据库模式编辑器总是原子块中包装Postgres迁移.

是否有一种明智的方法可以在迁移过程中突破交易?

我的迁移看起来像这样:

def modify_data(apps, schema_editor):
    counter = 0
    BigData = apps.get_model("app", "BigData")
    for row in BigData.objects.iterator():
        # Modify row [...]
        row.save()
        # Commit every 1000 rows
        counter += 1
        if counter % 1000 == 0:
            transaction.commit()
    transaction.commit()

class Migration(migrations.Migration):
    operations = [
        migrations.RunPython(modify_data),
    ]
Run Code Online (Sandbox Code Playgroud)

我正在使用Django 1.7和Postgres 9.3.这曾经用于南方和旧版本的Django.

django postgresql database-migration

15
推荐指数
2
解决办法
3922
查看次数