我如何进行 rails 迁移和 rails 种子
How can I do a rails migration and rails seed
我想用这个 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);
您应该创建一个 rake 任务(exp: 在您的 lib/task 中创建 grids.rake)
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
我想用这个 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);
您应该创建一个 rake 任务(exp: 在您的 lib/task 中创建 grids.rake)
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