标签: database-migration

EF迁移:回滚上次应用的迁移?

这看起来像一个非常常见的任务,但我找不到一个简单的方法来做到这一点.

我想撤消上次应用的迁移.我本来期待一个简单的命令,比如

PM> Update-Database -TargetMigration:"-1"
Run Code Online (Sandbox Code Playgroud)

相反,我能想出的就是:

PM> Get-Migrations

Retrieving migrations that have been applied to the target database.
201208012131302_Add-SystemCategory
201207311827468_CategoryIdIsLong
201207232247409_AutomaticMigration
201207211340509_AutomaticMigration
201207200025294_InitialCreate

PM> Update-Database -TargetMigration:"CategoryIdIsLong"
Run Code Online (Sandbox Code Playgroud)

(至少我可以只使用名称,跳过时间戳......)

有没有更简单的方法?

entity-framework database-migration entity-framework-4 ef-migrations

406
推荐指数
9
解决办法
27万
查看次数

重置实体框架迁移

我已经搞砸了我的迁移,我用于IgnoreChanges初始迁移,但现在我想要删除所有迁移,并开始使用所有逻辑进行初始迁移.

当我删除文件夹中的迁移并尝试Add-Migration它并不生成一个完整的文件(它是空的 - 因为我上次没有做任何更改,但现在已删除,迁移).

是否有任何Disable-Migrations命令,所以我可以重新运行Enable-Migrations

entity-framework database-migration ef-migrations

287
推荐指数
8
解决办法
18万
查看次数

在Laravel中回滚一个特定的迁移

我想要

仅回滚:

Rolled back: 2015_05_15_195423_alter_table_web_directories


我跑

php artisan migrate:rollback,我的3个迁移正在回滚.

Rolled back: 2015_05_15_195423_alter_table_web_directories
Rolled back: 2015_05_13_135240_create_web_directories_table
Rolled back: 2015_05_13_134411_create_contacts_table
Run Code Online (Sandbox Code Playgroud)

我删除了

无意中我web_directories和我的contacts桌子.可悲的是,我从来不希望这种情况发生,如果我只能回滚那个特定的那个,那么这场灾难将永远不会发生.


我希望

有人可以教我如何防止这种情况再次发生.

任何建议将不胜感激.

database-migration laravel laravel-4 laravel-5

201
推荐指数
11
解决办法
13万
查看次数

如何将redis数据库从一台服务器移动到另一台服务器?

我目前有一个在云实例上运行的实时redis服务器,我想将这个redis服务器迁移到新的云实例,并将该实例用作我的新redis服务器.如果是MySQL,我会从旧服务器导出数据库并将其导入新服务器.我应该如何用redis做到这一点?

PS:我不打算设置复制.我想将redis服务器完全迁移到新实例.

database data-migration database-migration redis

174
推荐指数
7
解决办法
10万
查看次数

访问被拒绝用户'宅基'@'localhost'(使用密码:是)

我使用Laravel 5.0在Mac OS Yosemite上.

在我的本地环境中,php artisan migrate我一直在运行:

在此输入图像描述

组态

这是我的.env

APP_ENV=local
APP_DEBUG=true
APP_KEY=*****

DB_HOST=localhost
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
Run Code Online (Sandbox Code Playgroud)

应用程序\ CONFIG\database.php中

   'mysql'       => [
    'driver'      => 'mysql',
    'host'        => env('DB_HOST', 'localhost'),
    'database'    => env('DB_DATABASE', 'homestead'),
    'username'    => env('DB_USERNAME', 'homestead'),
    'password'    => env('DB_PASSWORD', 'secret'),
    'unix_socket' => '/tmp/mysql.sock',
    'charset'     => 'utf8',
    'collation'   => 'utf8_unicode_ci',
    'prefix'      => '',
    'strict'      => false,
    ]
Run Code Online (Sandbox Code Playgroud)

我该如何避免这种错误?

我试过了 :


1

app/database.php中

替换localhost127.0.0.1

'host'=> env('DB_HOST', 'localhost') - >'host' => env('DB_HOST', '127.0.0.1') …

php database-migration laravel laravel-5 homestead

155
推荐指数
17
解决办法
26万
查看次数

如何将SQL Azure数据库复制到本地开发服务器?

有谁知道如何将SQL Azure数据库复制到我的开发机器?我想停止支付云中的开发数据库,​​但这是获取生产数据的最佳方式.我将我的生产数据库复制到一个新的开发数据库,​​但我希望在同一个数据库本地.

有什么建议?

sql-server database-migration azure azure-sql-database

152
推荐指数
9
解决办法
9万
查看次数

Rails迁移:删除约束

我在Rails应用程序中有一个表(在schema.rb中)看起来像:

create_table "users", :force => true do |t|
   t.string "name", :null=>false
   t.string "address", :null=>false
end
Run Code Online (Sandbox Code Playgroud)

我想写一个rails迁移来允许地址字段的空值.即迁移后,表格如下所示:

create_table "users", :force => true do |t|
   t.string "name", :null=>false
   t.string "address"
end
Run Code Online (Sandbox Code Playgroud)

删除约束我需要做什么?

ruby-on-rails database-migration

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

Sequelize.js:如何使用迁移和同步

我已准备好启动我的项目了.我有很大的计划在发布后,数据库结构将发生变化 - 现有表中的新列以及新表,以及与现有模型和新模型的新关联.

我还没有触及Sequelize中的迁移,因为我只有测试数据,我不介意每次数据库更改时擦除.

为此,目前我正在运行sync force: true应用程序启动时,如果我更改了模型定义.这会删除所有表并从头开始创建它们.我可以省略force让它只创建新表的选项.但如果现有的已经改变,这没有用.

所以,一旦我添加了迁移,事情是如何运作的?显然,我不希望现有的表(包含其中的数据)被消灭,因此sync force: true是不可能的.在我帮助开发的其他应用程序(Laravel和其他框架)作为应用程序部署过程的一部分,我们运行migrate命令来运行任何挂起的迁移.但是在这些应用程序中,第一次迁移有一个骨架数据库,数据库处于开发初期的状态 - 第一个alpha版本或其他任何版本.因此,通过按顺序运行所有迁移,即使是派对迟到的应用程序实例也可以一次性加快速度.

如何在Sequelize中生成这样的"第一次迁移"?如果我没有,那么应用程序的某个新实例将在没有框架数据库的情况下运行迁移,或者它将在开始时运行同步并将使数据库处于新状态新表等,但是当它尝试运行迁移时,它们将没有意义,因为它们是用原始数据库编写的,并且每次连续迭代都在考虑之中.

我的思考过程:在每个阶段,初始数据库加上每个顺序的迁移应该等于(加或减数据)sync force: true运行时生成的数据库.这是因为代码中的模型描述描述了数据库结构.因此,如果没有迁移表,我们只需运行同步并将所有迁移标记为已完成,即使它们未运行.这是我需要做的(怎么样?),或者Sequelize本身应该这样做,还是我咆哮着错误的树?如果我在正确的区域,肯定应该有一个很好的方法来自动生成大部分迁移,给定旧模型(通过提交哈希?甚至每次迁移都可以绑定到提交?我承认我在想在一个非便携式的以git为中心的宇宙中)和新模型.它可以区分结构并生成将数据库从旧变换到新变换所需的命令,然后开发人员可以进入并进行任何必要的调整(删除/转换特定数据等).

当我使用--init命令运行sequelize二进制文件时,它会给我一个空的迁移目录.当我运行sequelize --migrate它时,它使我成为SequelizeMeta表,其中没有任何内容,没有其他表.显然不是,因为二进制文件不知道如何引导我的应用程序并加载模型.

我肯定错过了什么.

TLDR:如何设置我的应用程序及其迁移,以便更新实时应用程序的各种实例,以及没有旧版启动数据库的全新应用程序?

database database-migration node.js sequelize.js

125
推荐指数
4
解决办法
6万
查看次数

如何为多个上下文启用EF迁移以分隔数据库?

如何在同一项目中为多个数据库上下文启用Entity Framework 5(版本5.0.0)迁移,其中每个上下文对应于其自己的数据库?当我Enable-Migrations在PM控制台(Visual Studio 2012)中运行时,由于存在多个上下文而出现错误:

PM> Enable-Migrations
More than one context type was found in the assembly 'DatabaseService'.
To enable migrations for DatabaseService.Models.Product1DbContext, use Enable-Migrations -ContextTypeName DatabaseService.Models.Product1DbContext.
To enable migrations for DatabaseService.Models.Product2DbContext, use Enable-Migrations -ContextTypeName DatabaseService.Models.Product2DbContext.
Run Code Online (Sandbox Code Playgroud)

如果我运行,Enable-Migrations -ContextTypeName DatabaseService.Models.Product1DbContext我不允许运行Enable-Migrations -ContextTypeName DatabaseService.Models.Product2DbContext因为迁移已经存在:Migrations have already been enabled in project 'DatabaseService'. To overwrite the existing migrations configuration, use the -Force parameter.

.net entity-framework database-migration entity-framework-5

118
推荐指数
6
解决办法
9万
查看次数

在Laravel迁移中使列不可为空

我正在编写一个迁移,以便立即在表格中创建某些列nullable.对于down函数,我当然希望not nullable再次创建这些列.我浏览了架构生成器文档,但看不到这样做的方法.

任何帮助,将不胜感激.

php sql database-migration laravel

112
推荐指数
4
解决办法
6万
查看次数