<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: postgres code</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Fri, 25 Jul 2008 08:00:29 GMT</pubDate>
    <description>DZone Snippets: postgres code</description>
    <item>
      <title>Postgres Date Add function</title>
      <link>http://snippets.dzone.com/posts/show/5544</link>
      <description>This function adds a year/month/day to a given date&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;CREATE OR REPLACE FUNCTION dateadd(diffType Character Varying(15), incrementValue int, inputDate timestamp) RETURNS timestamp AS $$&lt;br /&gt;DECLARE&lt;br /&gt;   YEAR_CONST Char(15) := 'year';&lt;br /&gt;   MONTH_CONST Char(15) := 'month';&lt;br /&gt;   DAY_CONST Char(15) := 'day';&lt;br /&gt;&lt;br /&gt;   dateTemp Date;&lt;br /&gt;   intervals interval;&lt;br /&gt;BEGIN&lt;br /&gt;   IF lower($1) = lower(YEAR_CONST) THEN&lt;br /&gt;       select cast(cast(incrementvalue as character varying) || ' year' as interval) into intervals;&lt;br /&gt;   ELSEIF lower($1) = lower(MONTH_CONST) THEN&lt;br /&gt;       select cast(cast(incrementvalue as character varying) || ' months' as interval) into intervals;&lt;br /&gt;   ELSEIF lower($1) = lower(DAY_CONST) THEN&lt;br /&gt;       select cast(cast(incrementvalue as character varying) || ' day' as interval) into intervals;&lt;br /&gt;   END IF;&lt;br /&gt;&lt;br /&gt;   dateTemp:= inputdate + intervals;&lt;br /&gt;&lt;br /&gt;   RETURN dateTemp;&lt;br /&gt;END;&lt;br /&gt;$$ LANGUAGE plpgsql;&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Tue, 27 May 2008 12:55:44 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/5544</guid>
      <author>arun.p.johny (Arun P Johny)</author>
    </item>
    <item>
      <title>Dump postgres production data into development database</title>
      <link>http://snippets.dzone.com/posts/show/3958</link>
      <description>When bug requests come in, its great to grab a copy of the current production (or system test env) data and sync it into your development database.&lt;br /&gt;&lt;br /&gt;Here's a capistrano recipe for postgresql:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;desc "Dumps target database into development db"&lt;br /&gt;task :sync_db do&lt;br /&gt;  env   = ENV['RAILS_ENV'] || ENV['DB'] || 'production'&lt;br /&gt;  file  = "#{application}.sql.bz2"&lt;br /&gt;  remote_file = "#{shared}/log/#{file}"&lt;br /&gt;  run "pg_dump --clean --no-owner --no-privileges -U#{db_user} -h#{db_host} #{db_name}_#{env} | bzip2 &gt; #{file}" do |ch, stream, out|&lt;br /&gt;    ch.send_data "#{db_password}\n" if out =~ /^Password:/&lt;br /&gt;    puts out&lt;br /&gt;  end&lt;br /&gt;  puts rsync = "rsync #{user}@#{domain}:#{file} tmp"&lt;br /&gt;  `#{rsync}`&lt;br /&gt;  puts depackage = "bzcat tmp/#{file} | psql #{local_db_dev}"&lt;br /&gt;  `#{depackage}`&lt;br /&gt;end&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Sun, 06 May 2007 09:00:17 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3958</guid>
      <author>nicwilliams (Dr Nic Williams)</author>
    </item>
  </channel>
</rss>
