`
wtb
  • 浏览: 106016 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

migration的外键支持

阅读更多

migration默认是不支持外键的,原因是一部分数据库如MySQL ISAMSQLite不支持外键,同时外键也会给Railstest fixture导入数据造成麻烦(这个好像有个很麻烦的解决办法)。不过还是有个插件提供了外键的导出(rake db:schema:dump)和导入(rake db:schema:load)(可惜migration中无法正常使用)。 <o:p></o:p>

安装: <o:p></o:p>

<o:p> </o:p>

script/plugin install svn://caboo.se/plugins/atmos/activerecord_foreign_key_extensions<o:p></o:p>

语法: <o:p></o:p>

<o:p> </o:p>

add_foreign_key_constraint table, foreign_key, reference_table, reference_column, :name => optional_constraint_name, :on_update => optional_on_update_action, :on_delete => optional_on_delete_action<o:p></o:p>

BACKGROUND: #f0f0f0; LINE-HEIGHT: 18pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2p


根据测试,只要安装了这个模块,在模型中定义好关联关系,再migrate,它会自动建立外键。

分享到:
评论

相关推荐

    MySQL Migration Toolkit v2.1

    7. **DBF、Access和Excel支持**:除了MySQL和Oracle,MySQL Migration Toolkit还支持将这些文件格式转换为MySQL数据库,这在处理非结构化数据或从遗留系统迁移时非常有用。 8. **批量迁移**:对于包含多个数据库或...

    MySQL无法创建外键的原因及解决方法

    InnoDB是支持事务处理和外键约束的存储引擎,适合需要数据完整性和事务安全性的应用场景。而MyISAM则注重性能,执行速度较快,但不支持事务处理和外键,更适合读取密集型的应用。 1. InnoDB不支持全文索引...

    SQL Server to Oracle Migration Tool

    5. 表结构迁移:工具会分析SQL Server的表结构,包括字段、主键、外键、索引等,并在Oracle中重建相似的结构,确保数据能正确插入。 6. 触发器和存储过程:SQL Server的触发器和存储过程需要在Oracle中重新编写,...

    Python库 | django_migration_linter-0.1.3-py2.py3-none-any.whl

    3. **未使用的外键**:检测迁移中添加的外键是否与现有模型匹配,防止引入无效关联。 4. **数据库约束**:检查是否正确处理了数据库约束,如唯一性、非空性和索引,避免因违反这些约束导致的迁移失败。 5. **数据...

    Laravel开发-harmless-migration

    "Harmless Migration"可能指的是编写安全、不会破坏现有数据的数据库迁移。这里我们将深入探讨Laravel开发中的迁移机制以及如何实现无害迁移。 1. **Laravel迁移基础** Laravel提供了命令行工具`...

    Introduction to SSIS and Migration of DTS to SSIS

    SSIS的设计目标是提供一个灵活且可扩展的数据集成平台,支持多种数据源和目标,包括关系数据库、文本文件、Excel电子表格、Web服务等。SSIS的核心组件包括控制流和数据流。 1.1 控制流 控制流是SSIS包的逻辑流程,...

    ASE-Oracle-Migration-Guide-112108-wp.pdf

    4. **数据验证**:执行数据完整性检查,如主键约束、外键引用、唯一性约束等。 5. **功能性验证**:测试数据库功能,如事务处理、存储过程执行、触发器响应等。 6. **性能验证**:监控系统响应时间、CPU利用率、...

    Ruby-SchemaPlus提供增强和扩展ActiveRecord的集合

    **Ruby-SchemaPlus:增强与扩展...它不仅简化了常见的数据库操作,还提供了对高级特性的支持,如外键、索引和视图。通过使用`SchemaPlus`,开发者可以更好地利用数据库系统的潜能,提升应用的性能和稳定性。

    migration:phalcon 的迁移

    - **数据库设计**:确保在迁移前对新数据库结构有清晰的理解,包括字段类型、索引、外键等。 - **数据备份**:在开始迁移之前,务必备份原有数据库,以防意外情况发生。 - **测试与验证**:在生产环境应用迁移之前...

    数据库迁移工具

    ESF Database Migration Toolkit是一款强大的工具,支持多种数据库平台,如MySQL、Oracle、SQL Server、PostgreSQL等,它提供了可视化界面,使得非技术人员也能方便地操作。其专业版通常包含更高级的功能,例如更...

    70、修复父评论删除时子评论同时删除的问题1

    具体做法是在定义外键时加上`ON DELETE SET NULL`选项,这样当删除主表记录时,从表中的相应外键字段将被设为`NULL`。 2. **实体映射注解配置** - 使用Symfony框架时,可以通过实体映射注解来进行更细粒度的控制...

    MySQLMigrationGuide

    这意味着需要移除所有与索引和其他通过索引表达的约束相关的引用,包括主键(PRIMARY)、外键(FOREIGN KEY)、唯一(UNIQUE)和检查(CHECK)约束。 此外,由于 IEE 在处理大数据集时具有极高的查询性能,因此可以...

    SQL Server到DB2迁移中级联更新问题解决的探讨.pdf

    级联更新在SQL Server开发中使用广泛,但在DB2中不被支持,而且这个特性在DB2 Migration Toolkit中也没有得到解决。 针对此问题,文章提出了在数据库层面,通过增加触发器来模拟主外键关系,从而实现级联更新功能的...

    一站式OceanBase迁移最佳实践

    数据对象方面,包括简单触发器、视图、DBLink、外键、约束、序列以及自定义函数。它还拥有完善的权限管理能力和分析功能,包括CTE、窗口函数、层次查询、pivot以及groupingSets/rollup等。安全功能上,OceanBase提供...

    biciklo-db-migration:在 MyKoop 中将 biciklo 数据库从 mongodb 迁移到 mysql 的脚本

    这包括定义字段、数据类型、主键、外键等。 5. **数据加载**:使用MySQL的工具(如`LOAD DATA INFILE`语句)或编程方式将转换后的数据导入到MySQL中。 6. **验证与测试**:确保所有数据正确无误地导入,并进行功能...

    消除行迁移与Oracle数据库性能调优.pdf

    Oracle数据库在处理数据时可能会遇到行迁移(Row Migration,简称RM)的问题,这会严重影响数据库的性能。行迁移发生在数据更新时,原有块空间不足,需要将整条记录移动到新的块中。Oracle会保留旧块中的行标识(Row...

    mysql-workbench-community-6.2.5-winx64

    1. 数据建模(Data Modeling):使用ER(实体关系)模型,用户可以设计复杂的数据库结构,包括表、字段、索引、外键等,支持逆向工程,可以从现有数据库中生成模型。 2. SQL开发(SQL Development):内置的SQL编辑...

    浅谈SSMA在审计数据采集中的应用.pdf

    本文主要讨论了SSMA(SQL Server Migration Assistant)在审计数据采集中的应用。SSMA是一个由微软发布的工具集,旨在帮助客户从Oracle、Sybase、MySQL、Access等数据库迁移到SQL Server。 在审计数据采集中,经常...

Global site tag (gtag.js) - Google Analytics