【问题标题】:How can I do a rails migration and rails seed如何进行 Rails 迁移和 Rails 种子
【发布时间】:2020-05-08 22:49:53
【问题描述】:

我想使用这个 postgresql 查询进行 rails 迁移和 rails 种子。我该怎么做?

DROP TABLE IF EXISTS grid_light;
  CREATE TABLE grid_light AS
  SELECT DISTINCT g.ogc_fid AS id, g.geog4326 AS geog
  FROM grid g, tracks t
  WHERE t.path_buff_geog && g.geog4326 AND ST_Intersects(t.path_buff_geog, g.geog4326);

【问题讨论】:

    标签: ruby-on-rails postgresql postgis database-migration seed


    【解决方案1】:

    你应该创建一个 rake 任务(exp: create grids.rake in your lib/task)

    namespace :grids do
      desc 'explain your rake here'
      task create_grid: :environment do
        drop_sql_cmd = <<-SQL
          DROP TABLE IF EXISTS grid_light;
        SQL
    
        create_sql_cmd = <<-SQL
          CREATE TABLE grid_light AS
          SELECT DISTINCT g.ogc_fid AS id, g.geog4326 AS geog
          FROM grid g, tracks t
          WHERE t.path_buff_geog && g.geog4326 AND ST_Intersects(t.path_buff_geog, g.geog4326);
        SQL
        ActiveRecord::Base.transaction do
          ActiveRecord::Base.connection.execute(drop_sql_cmd)
          ActiveRecord::Base.connection.execute(create_sql_cmd)
        end
      end
    end
    
    
    

    如果调用 rake 为

    bundle exec rake grids:create_grid
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-16
      • 2015-01-26
      • 2015-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多