<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: save_fixtures code</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Sun, 18 May 2008 16:46:59 GMT</pubDate>
    <description>DZone Snippets: save_fixtures code</description>
    <item>
      <title>Save db data to fixture files</title>
      <link>http://snippets.dzone.com/posts/show/4729</link>
      <description>rake db:fixtures:dump_all &lt;br /&gt;&#1086;&#1085; &#1089;&#1086;&#1093;&#1088;&#1072;&#1085;&#1080;&#1090; &#1074;&#1089;&#1077; &#1076;&#1072;&#1085;&#1085;&#1099;&#1077; &#1080;&#1079; &#1074;&#1072;&#1096;&#1080;&#1093; &#1090;&#1072;&#1073;&#1083;&#1080;&#1094; development &#1073;&#1072;&#1079;&#1099; &#1074; &#1103;&#1084;&#1083;&#1099; &#1076;&#1083;&#1103; &#1090;&#1077;&#1089;&#1090;&#1086;&#1074; rake &lt;br /&gt;&lt;br /&gt;db:fixtures:dump_references &lt;br /&gt;["areas","countries"]&lt;br /&gt;&#1089;&#1086;&#1093;&#1088;&#1072;&#1085;&#1080;&#1090; &#1090;&#1086;&#1083;&#1100;&#1082;&#1086; &#1090;&#1077; &#1090;&#1072;&#1073;&#1083;&#1080;&#1094;&#1099; &#1082;&#1086;&#1090;&#1086;&#1088;&#1099; &#1077;&#1087;&#1088;&#1086;&#1087;&#1080;&#1089;&#1072;&#1085;&#1099; &#1091; &#1085;&#1077;&#1075;&#1086; &#1074; &#1082;&#1086;&#1085;&#1092;&#1080;&#1075;&#1077;, &#1074; &#1076;&#1072;&#1085;&#1085;&#1086;&#1084; &#1089;&#1083;&#1091;&#1095;&#1072;&#1077; &#1101;&#1090;&#1086; &lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;namespace :db do&lt;br /&gt;  namespace :fixtures do&lt;br /&gt;&lt;br /&gt;    desc 'Create YAML test fixtures from data in an existing database.&lt;br /&gt;Defaults to development database. Set RAILS_ENV to override.'&lt;br /&gt;    task :dump_all =&gt; :environment do&lt;br /&gt;      sql = "SELECT * FROM %s"&lt;br /&gt;      skip_tables = ["schema_info"]&lt;br /&gt;      ActiveRecord::Base.establish_connection(:development)&lt;br /&gt;      (ActiveRecord::Base.connection.tables - skip_tables).each do |table_name|&lt;br /&gt;        i = "000"&lt;br /&gt;        File.open("#{RAILS_ROOT}/test/fixtures/#{table_name}.yml", 'w') do |file|&lt;br /&gt;          data = ActiveRecord::Base.connection.select_all(sql % table_name)&lt;br /&gt;          file.write data.inject({}) { |hash, record|&lt;br /&gt;            hash["#{table_name}_#{i.succ!}"] = record&lt;br /&gt;            hash&lt;br /&gt;          }.to_yaml&lt;br /&gt;        end&lt;br /&gt;      end&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt;  &lt;br /&gt;  namespace :fixtures do&lt;br /&gt;    desc 'Create YAML test fixtures for references. Defaults to development database. &lt;br /&gt;    Set RAILS_ENV to override.'&lt;br /&gt;    task :dump_references =&gt; :environment do&lt;br /&gt;      sql = "SELECT * FROM %s"&lt;br /&gt;      dump_tables = ["areas","countries"]&lt;br /&gt;      ActiveRecord::Base.establish_connection(:development)&lt;br /&gt;      dump_tables.each do |table_name|&lt;br /&gt;        i = "000"&lt;br /&gt;        file_name = "#{RAILS_ROOT}/test/fixtures/#{table_name}.yml"&lt;br /&gt;        p "Fixture save for table #{table_name} to #{file_name}"&lt;br /&gt;        File.open(file_name, 'w') do |file|&lt;br /&gt;          data = ActiveRecord::Base.connection.select_all(sql % table_name)&lt;br /&gt;          file.write data.inject({}) { |hash, record|&lt;br /&gt;            hash["#{table_name}_#{i.succ!}"] = record&lt;br /&gt;            hash&lt;br /&gt;          }.to_yaml&lt;br /&gt;        end&lt;br /&gt;      end&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt;end &lt;br /&gt;&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Fri, 02 Nov 2007 09:30:18 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4729</guid>
      <author>bublik (Voloshin Ruslan)</author>
    </item>
  </channel>
</rss>
