Ruby on rails ROR迁移文件名

Ruby on rails ROR迁移文件名,ruby-on-rails,migration,rake,Ruby On Rails,Migration,Rake,我有像这样的迁移文件名 001_烟雾法 002_布拉 003_书呆子 20110022211973_smoething 这些将按什么顺序运行?它们将按以下顺序运行: 001_烟雾法 002_布拉 003_书呆子 20110022211973_smoething 因为rails在执行迁移时会按名称对文件进行排序。它们将按以下顺序运行: 001_烟雾法 002_布拉 003_书呆子 20110022211973_smoething 因为rails在执行迁移时会按名称对文件进行排序。在场景后面,文件名

我有像这样的迁移文件名

001_烟雾法 002_布拉 003_书呆子 20110022211973_smoething


这些将按什么顺序运行?

它们将按以下顺序运行:

  • 001_烟雾法
  • 002_布拉
  • 003_书呆子
  • 20110022211973_smoething

  • 因为rails在执行迁移时会按名称对文件进行排序。

    它们将按以下顺序运行:

  • 001_烟雾法
  • 002_布拉
  • 003_书呆子
  • 20110022211973_smoething

  • 因为rails在执行迁移时会按名称对文件进行排序。

    在场景后面,文件名开头的数字部分会转换为整数。然后按版本对迁移文件进行排序。因此,它将按照您描述的相同顺序运行:

    001_smomething
    002_blah
    003_bookblah
    20110022211973_smoething
    
    你可以看看它是如何工作的。以下是重要的部分:

    # Get the number part as version.
    version, name = file.scan(/([0-9]+)_([_a-z0-9]*).rb/).first
    
    # Convert version to integer.
    version = version.to_i
    
    # Sort the files by version.
    migrations = migrations.sort_by { |m| m.version }
    

    在场景后面,文件名开头的数字部分将转换为整数。然后按版本对迁移文件进行排序。因此,它将按照您描述的相同顺序运行:

    001_smomething
    002_blah
    003_bookblah
    20110022211973_smoething
    
    你可以看看它是如何工作的。以下是重要的部分:

    # Get the number part as version.
    version, name = file.scan(/([0-9]+)_([_a-z0-9]*).rb/).first
    
    # Convert version to integer.
    version = version.to_i
    
    # Sort the files by version.
    migrations = migrations.sort_by { |m| m.version }