Questions tagged «database-migration»

数据库迁移是在存储类型,格式或计算机系统之间传输数据的过程。也指将数据库从一个供应商迁移到另一供应商,或升级数据库软件的版本。

11
EF迁移:回滚上一次应用的迁移?
这看起来是一个非常普通的任务,但是我找不到一种简单的方法来完成它。 我想撤消上一次应用的迁移。我本来希望有一个简单的命令,例如 PM> Update-Database -TargetMigration:"-1" 相反,我能想到的是: 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" (至少我可以只使用名称,跳过时间戳...) 有没有更简单的方法?

14
重置实体框架迁移
我已经IgnoreChanges对初始迁移进行了重新整理,但是现在我想删除所有迁移,并从所有逻辑开始进行初始迁移。 当我删除文件夹中的迁移并尝试并Add-Migration不会生成完整文件时(它是空的-因为自上次迁移以来,我没有进行任何更改,但是现在删除了该迁移)。 是否有任何Disable-Migrations命令,所以我可以重新运行Enable-Migrations?

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 我删除 我web_directories和我的contacts桌子都无意间 我从不希望这种情况发生,而且如果我只能回退特定的故障,那么这种灾难将永远不会发生。

13
如何将Redis数据库从一台服务器移到另一台服务器?
我目前有一个在云实例上运行的实时Redis服务器,我想将此Redis服务器迁移到新的云实例并将该实例用作我的新Redis服务器。如果是MySQL,则可以从旧服务器导出数据库,然后将其导入新服务器。我应该如何使用redis? PS:我不是要设置复制。我想将Redis服务器完全迁移到新实例。

29
用户'homestead'@'localhost'的访问被拒绝(使用密码:是)
我在使用Laravel 5.0的Mac OS Yosemite上。 在我的本地环境中,php artisan migrate我一直在跑: 用户'homestead'@'localhost'的访问被拒绝(使用密码:是) 组态 这是我的.env APP_ENV=local APP_DEBUG=true APP_KEY=***** DB_HOST=localhost DB_DATABASE=homestead DB_USERNAME=homestead DB_PASSWORD=secret app \ 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', …


11
Sequelize.js:如何使用迁移和同步
我即将准备好启动我的项目。在启动后,我有很大的计划,数据库结构也将发生变化-现有表中的新列以及新表,以及与现有模型和新模型的新关联。 我还没有接触过Sequelize中的迁移,因为我只有测试数据,所以我不介意在每次数据库更改时都清除掉这些数据。 为此sync force: true,如果我更改了模型定义,则目前我正在运行我的应用程序。这将删除所有表并使它们从头开始。我可以忽略force使它仅创建新表的选项。但是,如果现有的更改,这将无用。 因此,一旦添加迁移,事情如何工作?显然,我不希望删除现有表(其中包含数据),所以这sync force: true是不可能的。在我帮助开发的其他应用程序(Laravel和其他框架)中,作为该应用程序部署过程的一部分,我们运行migration命令来运行所有待处理的迁移。但是在这些应用程序中,第一个迁移具有框架数据库,该数据库处于开发尚处于初期状态的状态-首次发布Alpha版本或其他内容。因此,即使是晚到派对的应用程序实例,也可以通过依次运行所有迁移,一口气掌握速度。 如何在Sequelize中生成这样的“首次迁移”?如果我没有,则该应用程序的新实例可能会没有骨架数据库来运行迁移,或者它将在开始时运行同步,并使所有数据库都处于新状态新表等,但是当它尝试运行迁移时,它们将变得毫无意义,因为它们是在原始数据库的基础上编写的,并且考虑到了每个连续的迭代。 我的思考过程:在每个阶段,初始数据库加上依次进行的每次迁移都应等于(正负数据)数据库, sync force: true运行。这是因为代码中的模型描述描述了数据库结构。因此,也许即使没有迁移表,我们也可以运行同步并将所有迁移标记为完成,即使它们没有运行。这是我需要做的(如何?),还是应该由Sequelize自己做,还是我吠错了树?如果我在正确的区域,那么肯定会存在一种自动生成大部分迁移的好方法,考虑到旧模型(通过提交哈希?甚至每个迁移都可以与提交相关联?),我承认我在想在不可移植的以git为中心的世界中)和新模型。它可以改变结构并生成将数据库从旧版本转换为新版本所需的命令,然后再返回,然后开发人员可以进行必要的调整(删除/转换特定数据等)。 当我使用--init命令运行sequelize二进制文件时,它给了我一个空的迁移目录。然后,当我运行sequelize --migrate它时,我得到一个SequelizeMeta表,里面没有任何东西,没有其他表。显然不是,因为该二进制文件不知道如何引导我的应用程序和加载模型。 我肯定错过了什么。 TLDR:如何设置我的应用程序及其迁移,以便可以更新实时应用程序的各种实例,以及没有旧启动数据库的全新应用程序?

2
Rails迁移:消除约束
我在Rails应用程序中有一个表(在schema.rb中)如下: create_table "users", :force => true do |t| t.string "name", :null=>false t.string "address", :null=>false end 我想编写一个rails迁移,以允许地址字段为空。即,迁移后,该表如下所示: create_table "users", :force => true do |t| t.string "name", :null=>false t.string "address" end 我需要怎么做才能消除约束?

4
在Laravel迁移中使列不可为空
我正在编写一个迁移,以立即在表中创建某些列nullable。对于down函数,我当然想not nullable再次创建这些列。我浏览了架构生成器docs,但是找不到实现此目的的方法。 任何帮助,将不胜感激。

7
如何为多个上下文启用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. 如果我运行,则Enable-Migrations -ContextTypeName DatabaseService.Models.Product1DbContext不允许运行,Enable-Migrations -ContextTypeName DatabaseService.Models.Product2DbContext因为迁移已存在:Migrations have already been enabled in project 'DatabaseService'. To overwrite …

6
如果仅添加新表,则迁移会议室数据库
假设我有一个简单的Room数据库: @Database(entities = {User.class}, version = 1) abstract class AppDatabase extends RoomDatabase { public abstract Dao getDao(); } 现在,我要添加一个新实体:Pet并将版本增加到2: @Database(entities = {User.class, Pet.class}, version = 2) abstract class AppDatabase extends RoomDatabase { public abstract Dao getDao(); } 当然,Room会引发异常: java.lang.IllegalStateException: A migration from 1 to 2 is necessary. 假设我没有更改User类(因此所有数据都是安全的),我必须提供仅创建一个新表的迁移。因此,我正在研究Room生成的类,搜索生成的查询以创建我的新表,将其复制并粘贴到迁移中: final Migration …

9
Ruby on Rails:如何使用rake db:migrate还原迁移?
安装devise MODEL User之后,我得到了这个。 class DeviseCreateUsers < ActiveRecord::Migration def self.up create_table(:users) do |t| t.database_authenticatable :null => false t.recoverable t.rememberable t.trackable # t.encryptable # t.confirmable # t.lockable :lock_strategy => :failed_attempts, :unlock_strategy => :both # t.token_authenticatable t.timestamps end add_index :users, :email, :unique => true add_index :users, :reset_password_token, :unique => true # add_index :users, …

5
删除带有外键Laravel的列错误:常规错误:1025重命名错误
我已经使用迁移创建了一个表,如下所示: public function up() { Schema::create('despatch_discrepancies', function($table) { $table->increments('id')->unsigned(); $table->integer('pick_id')->unsigned(); $table->foreign('pick_id')->references('id')->on('picks'); $table->integer('pick_detail_id')->unsigned(); $table->foreign('pick_detail_id')->references('id')->on('pick_details'); $table->integer('original_qty')->unsigned(); $table->integer('shipped_qty')->unsigned(); }); } public function down() { Schema::drop('despatch_discrepancies'); } 我需要更改此表并删除外键引用和列,pick_detail_id并添加一个新的varchar列,此列称为skuafter pick_idcolumn。 因此,我创建了另一个迁移,如下所示: public function up() { Schema::table('despatch_discrepancies', function($table) { $table->dropForeign('pick_detail_id'); $table->dropColumn('pick_detail_id'); $table->string('sku', 20)->after('pick_id'); }); } public function down() { Schema::table('despatch_discrepancies', function($table) { $table->integer('pick_detail_id')->unsigned(); $table->foreign('pick_detail_id')->references('id')->on('pick_details'); $table->dropColumn('sku'); }); …

25
django.db.migrations.exceptions.InconsistentMigrationHistory
当我python manage.py migrate在Django项目上运行时,出现以下错误: Traceback (most recent call last): File "manage.py", line 22, in <module> execute_from_command_line(sys.argv) File "/home/hari/project/env/local/lib/python2.7/site- packages/django/core/management/__init__.py", line 363, in execute_from_command_line utility.execute() File "/home/hari/project/env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 355, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/home/hari/project/env/local/lib/python2.7/site-packages/django/core/management/base.py", line 283, in run_from_argv self.execute(*args, **cmd_options) File "/home/hari/project/env/local/lib/python2.7/site-packages/django/core/management/base.py", line 330, in execute output = self.handle(*args, **options) File "/home/hari/project/env/local/lib/python2.7/site-packages/django/core/management/commands/migrate.py", …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.