如何使用Meteor执行数据库迁移?使用Ruby on Rails,有ActiveRecord :: Migration.Meteor中有相同的机制吗?
例如,我使用一些用户数据制作应用程序.我使用JSON格式将数据存储在Mongo中.应用程序更改,JSON数据库架构需要更改.我可以编写一个迁移方法来更改模式,但是,如果服务器数据库已过期,我只希望它运行.
我有一个PostgreSQL 9.1数据库,其中包含100个左右的表,这些表被加载到"公共"模式中.我想将这些表(但不是'public'中的所有函数)移动到'data'模式.
我知道我可以使用以下内容一次移动1个表.
ALTER TABLE [tablename] SET SCHEMA [new_schema]
Run Code Online (Sandbox Code Playgroud)
是否可以在一次操作中将所有表移动到新架构?如果是这样,那么完成这项任务最有效的方法是什么?
我正在研究Hartl ruby on rails教程(第2.2节),我在迁移数据库时遇到了问题.一切似乎都在工作,然后我运行rails generate scaffold User name:string email:string
Afterwards我试图运行bundle exec rake db:migrate并得到以下错误消息:
$ bundle exec rake db:migrate
== 20141125234257 CreateUsers: migrating ======================================
-- create_table(:users)
-> 0.0079s
== 20141125234257 CreateUsers: migrated (0.0080s) =============================
rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:
wrong number of arguments (1 for 0)/usr/local/rvm/gems/ruby-2.1.4@rails4/gems/activerecord-4.2.0.beta4/lib/active_record/connection_adapters/abstract_adapter.rb:271:in `initialize'
/usr/local/rvm/gems/ruby-2.1.4@rails4/gems/activerecord-4.2.0.beta4/lib/active_record/connection_adapters/abstract_adapter.rb:271:in `new'
/usr/local/rvm/gems/ruby-2.1.4@rails4/gems/activerecord-4.2.0.beta4/lib/active_record/connection_adapters/abstract_adapter.rb:271:in `substitute_at'
/usr/local/rvm/gems/ruby-2.1.4@rails4/gems/activerecord-4.2.0.beta4/lib/active_record/relation.rb:97:in `block in substitute_values'
/usr/local/rvm/gems/ruby-2.1.4@rails4/gems/activerecord-4.2.0.beta4/lib/active_record/relation.rb:96:in `each'
/usr/local/rvm/gems/ruby-2.1.4@rails4/gems/activerecord-4.2.0.beta4/lib/active_record/relation.rb:96:in `each_with_index'
/usr/local/rvm/gems/ruby-2.1.4@rails4/gems/activerecord-4.2.0.beta4/lib/active_record/relation.rb:96:in `substitute_values'
/usr/local/rvm/gems/ruby-2.1.4@rails4/gems/activerecord-4.2.0.beta4/lib/active_record/relation.rb:56:in `insert'
/usr/local/rvm/gems/ruby-2.1.4@rails4/gems/activerecord-4.2.0.beta4/lib/active_record/persistence.rb:521:in `_create_record'
/usr/local/rvm/gems/ruby-2.1.4@rails4/gems/activerecord-4.2.0.beta4/lib/active_record/counter_cache.rb:139:in `_create_record'
/usr/local/rvm/gems/ruby-2.1.4@rails4/gems/activerecord-4.2.0.beta4/lib/active_record/attribute_methods/dirty.rb:122:in `_create_record'
/usr/local/rvm/gems/ruby-2.1.4@rails4/gems/activerecord-4.2.0.beta4/lib/active_record/callbacks.rb:306:in `block in …
Run Code Online (Sandbox Code Playgroud) 有谁知道如何将使用Android Studio构建的一个项目移动到另一台计算机?
我正在尝试将我在MS SQL Server中的数据库迁移到MySQL,我正在使用Workbench这样做.我连接到两个数据库,但收到以下警告:
Retrieve schema list from source.
Run Code Online (Sandbox Code Playgroud)
这是消息日志:
Starting...
Connect to source DBMS...
- Connecting to source...
Connect to source DBMS done
Check target DBMS connection...
- Connecting to target...
Connecting to Mysql@74.5.3.2:3306...
Connecting to Mysql@74.5.3.2:3306...
Connected
Check target DBMS connection done
Retrieve schema list from source....
- Checking connection...
- Fetching catalog names...
WARNING: The following catalogs where not found: Autotask
- Fetching schema names...
- Finished
Retrieve schema list from source finished
Tasks finished with warnings and/or …
Run Code Online (Sandbox Code Playgroud) 我将我的项目迁移到mvc 5.0并使用Microsoft Instruction将 razor engin 3迁移
但是打开我的解决方案时得到这个:
Web项目"ProjectName"需要缺少与Visual Studio一起运行的Web组件.您是否要立即使用Web平台安装程序下载并安装它们?(注意:某些组件可能需要重新启动才能生效.)
使用Razor语法3.0.0.0的ASP.NET网页
但这些答案对我没有帮助,我感谢你的帮助
更新: 我的项目构建很好,并且没有任何例外使用razor 3和mvc 5,但只是Intellisense没有感知我的打字和着色我的代码
并且当在Application web Config文件中将此行更改为Value ="2.0.0.0"时,错误消失并且intelisens工作正常
<appSettings>
<add key="webpages:Version" **value="3.0.0.0"** />
...
</appSettings>
Run Code Online (Sandbox Code Playgroud)
更新 一段时间后,现在你可以使用razor 3 on vs 2012. 在这里你可以升级
在开发中,我在laravel中遇到了很多迁移问题.
我创建了一个迁移.当我完成创建时,在迁移过程中(例如,外键约束)会出现一个小错误,导致"php artisan migrate"失败.他确实告诉我错误的位置,然后迁移到一个不一致的状态,在错误发生之前对数据库进行了所有修改,而不是下一个.
这使得当我修复错误并重新运行migrate时,第一个语句失败,因为已经创建/修改了列/表.然后我知道的唯一解决方案是进入我的数据库并手动"回滚"所有内容,这样做的时间更长.
migrate:rollback尝试回滚以前的迁移,因为当前未成功应用当前迁移.
我还试图将我的所有代码都包装到DB :: transaction()中,但它仍然不起作用.
这有什么解决方案吗?或者我只需要手动回滚东西?
编辑,添加一个示例(不编写Schema构建器代码,只是某种伪代码):
Migration1:
Create Table users (id, name, last_name, email)
Run Code Online (Sandbox Code Playgroud)
Migration1执行正常.几天后我们进行迁移2:
Create Table items (id, user_id references users.id)
Alter Table users make_some_error_here
Run Code Online (Sandbox Code Playgroud)
现在将会发生的事情是,migrate将调用第一个语句,并使用外键向用户创建表项.然后,当他试图应用下一个语句时,它将失败.
如果我们修复了make_some_error_here,我们就无法运行migrate,因为它创建了表"items".我们无法回滚(也不刷新,也不能重置),因为我们无法删除表用户,因为表项中存在外键约束.
然后,继续的唯一方法是转到数据库并手动删除表项,以便以一致的状态迁移.
我有一个Python/Django项目.由于一些回滚,以及其他混合的东西,我们最终出现了一种奇怪的情况.
目前的情况是这样的:
代码是最新的
通过一次或两次迁移,迁移文件夹位于数据库后面.(这些迁移是从其他地方应用的,而"其他地方"不再存在)
我添加和更改了一些模型
我需要的:
为了能够运行迁移,可以"忽略"现有表并应用新表.或任何替代方法来实现这一目标.
那可能吗?
任何简单的方法来检测它?我想在进行迁移rake时跳过envirmonment.rb中的一些代码.
我已经迁移了一个名为units的表,其中有几列.我想知道如何使用cmd将独立的"add_index"迁移到此表中.这段代码是否正确:
class AddIndexToUnits < ActiveRecord::Migration
def self.up
add_index :units, :lesson_id
end
def self.down
remove :units
end
end
Run Code Online (Sandbox Code Playgroud)
我有一种自我感觉可能是错误的,我不确定.