日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

如何用rake tasks 生成migration对应的sql

發布時間:2025/3/15 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何用rake tasks 生成migration对应的sql 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

how-to-use-rake-tasks-to-generate-migration-sql

Rakefile文件里有load_tasks的方法

http://api.rubyonrails.org/

Load Rake, railties tasks and invoke the registered hooks. Check Rails::Railtie.rake_tasks for more info.Source: hide | on GitHub# File railties/lib/rails/engine.rb, line 451 def load_tasks(app=self)require "rake"run_tasks_blocks(app)self end

?

rake_tasks(&block) If you try to define a set of rake tasks on the instance,
these will get passed up to the rake tasks defined on the application's class. Source: hide | on GitHub# File railties/lib/rails/application.rb, line 270 def rake_tasks(&block)self.class.rake_tasks(&block) end

相關文檔

http://guides.rubyonrails.org/command_line.html

https://github.com/ruby/rake

http://eewang.github.io/blog/2013/07/29/how-to-use-rake-tasks-to-generate-migration-sql/

開始寫代碼了。

在lib/tasks/文件夾新建migrate.rake

# 根據下面的博客做了一點點修改 # http://eewang.github.io/blog/2013/07/29/how-to-use-rake-tasks-to-generate-migration-sql/ namespace :db do [ :migrate, :rollback ].each do |n|namespace n do |migration_task| # original_task = migration_task.instance_variable_get("@scope").join ":" [:with_sql, :to_sql ].each do |t|desc "Run migration, and generated SQL" if t == :with_sqldesc "Generate migration SQL" if t == :to_sqltask t => :environment do |sql_task| original_task = sql_task.name.sub(":#{t}", '')case original_task when 'db:migrate' filename = 'upgrade.sql' when 'db:rollback' filename = 'rollback.sql' else raise "unkown migration type #{original_task}"end ActiveRecord::Base.connection.class.class_eval do# alias the adapter's execute for later usealias :old_execute :execute

SQL_FILENAME = filename RUN_SQL = sql_task.name.ends_with?("with_sql")# define our own execute def execute(sql, name = nil) # check for some DDL and DML statementsif /^(create|alter|drop|insert|delete|update)/i.match sqlFile.open(SQL_FILENAME, 'a') { |f| f.puts "#{sql};\n" } old_execute sql, name if RUN_SQLelse# pass everything else to the aliased execute old_execute sql, nameendendend# create or delete content of migration.sqlFile.open(SQL_FILENAME, 'w') { |f| f.puts "-- Script created @ #{Time.now}" }# invoke the normal migration procedure now Rake::Task[original_task].invokeputs "Ran #{original_task} and wrote sql to #{filename}"endendendend end

這時候來執行$ rake -T db

可以看到新增的功能

rake db:create # Creates the database from DATABASE_URL or config/database.yml for the current RAILS_ENV (use db:create:all t... rake db:drop # Drops the database from DATABASE_URL or config/database.yml for the current RAILS_ENV (use db:drop:all to dr... rake db:fixtures:load # Load fixtures into the current environment's database rake db:migrate # Migrate the database (options: VERSION=x, VERBOSE=false, SCOPE=blog) rake db:migrate:status # Display status of migrations rake db:migrate:to_sql # Generate migration SQL rake db:migrate:with_sql # Run migration, and generated SQL rake db:rollback # Rolls the schema back to the previous version (specify steps w/ STEP=n) rake db:rollback:to_sql # Generate migration SQL rake db:rollback:with_sql # Run migration, and generated SQL

?

$ mysqldump -uroot -p ott_remote_cms_development > back.sql

$ rake db:drop

$ rake db:create

$ rake db:migrate:with_sql

$ mysql -uroot -p ott_remote_cms_development < back.sql

$ cat upgrade.sql

把sql發給dba就可以了,確實太麻煩了。

?

轉載于:https://www.cnblogs.com/iwangzheng/p/5333474.html

總結

以上是生活随笔為你收集整理的如何用rake tasks 生成migration对应的sql的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 黄色av免费 | 污视频网址在线观看 | 日本一区二区视频 | 伊人久色 | 国产精品一区二区黑人巨大 | 免费在线观看一区二区三区 | 国产xxxxxxxxx| 日韩极品一区 | 三级小说视频 | 久久亚洲综合色图 | 亚洲熟妇无码一区二区三区导航 | 丰满人妻一区二区三区大胸 | 亚欧成人精品 | 少妇的激情 | 国产精品久久..4399 | 在线观看一二三区 | www.96av| av黄色在线看 | 精品人伦一区二区三区 | 丰满人妻一区二区三区四区53 | 免费看a的网站 | 少妇厨房愉情理伦bd在线观看 | 国产最新网址 | 黑人番号 | 超碰一区二区 | 露脸丨91丨九色露脸 | 午夜激情男女 | 亚洲www视频| 亚洲精品久久久久av无码 | 亚洲av无码一区二区三区在线播放 | 日韩欧美视频免费观看 | 欧美性大战xxxxx久久久 | 国产精品12| 久久久激情网 | 中国在线观看视频高清免费 | 先锋资源一区 | 国产真实交换夫妇视频 | 久久久久亚洲av无码网站 | 手机av不卡 | 乖女从小调教h尿便器小说 欧美韩一区二区 | 奇米亚洲| 日本三级大全 | 在线网站av | 国产精品一区二区av | 暗呦丨小u女国产精品 | 成年人免费在线看 | 毛片a片免费观看 | 秋霞精品一区二区三区 | 91网页在线观看 | 国产中文字幕在线视频 | 成人av免费在线看 | 黑人精品一区二区三区 | 国产三级自拍视频 | 国产成人无码av在线播放dvd | 免费在线黄色网 | 91中文字日产乱幕4区 | 黄色特级片 | 精品一区二区三区蜜桃 | 日韩不卡在线播放 | 视频一区在线播放 | 黄网在线观看视频 | 丰满大乳少妇在线观看网站 | 国产情侣露脸自拍 | 国产乱国产 | 国产亚洲精品久久久久久777 | 国产a大片 | 天天鲁一鲁摸一摸爽一爽 | 91国产视频在线观看 | 精品国偷自产国产一区 | 欧美激情网址 | 在线视频91 | 日本一区二区欧美 | 精品伦精品一区二区三区视频密桃 | 国产成人免费观看 | 欧美xxxx吸乳 | 国产成人无码一区二区在线观看 | 啪啪自拍视频 | 日韩精品一区二区三区高清免费 | 波多野结衣福利 | 九草视频在线观看 | 亚洲av电影一区二区 | 久久综合色婷婷 | 日韩精品一区在线播放 | 亚洲中文一区二区 | 黄色一级在线视频 | 国产卡一卡二 | 精品久久九九 | 麻豆综合 | 91精品视频网站 | 美国黄色一级毛片 | 成人午夜免费电影 | 婷婷色在线视频 | 伊人亚洲影院 | 日本人妖xxxx | 91干干| 香蕉成视频人app下载安装 | 最新的av网站 | 成人天堂网 | 在线观看免费高清视频 |