Browsed by
Month: May 2010

Resumo de comandos úteis do PostgreSQL

Resumo de comandos úteis do PostgreSQL

Introdução

Este post é um resumo de comandos úteis para administração de banco de dados PostgreSQL.

Instalação

Versão 8.3 no Ubuntu 9.10

sudo aptitude install postgresql-8.3 postgresql-client-8.3 pgadmin3 pgadmin3-data postgresql-server-dev-8.3 libpostgresql-ocaml-dev

Versão 8.4 no Ubuntu 10.04

sudo aptitude install postgresql postgresql-contrib libpq-dev pgadmin3

Criando uma senha

sudo su postgres -c psql postgres
ALTER USER postgres WITH PASSWORD 'sua_senha';

Gerenciar bancos de dados

Criar uma base pelo terminal

createdb -U username -E utf8 dbname -h localhost

Criar uma base pelo psql

create database dbname with owner=postgres encoding='utf8';

Renomear uma base

alter database "old_name" rename to "new_name";

Apagar uma base

drop database dbname;

Backup (dump) e restore

Dump de uma base

pg_dump dbname -h localhost -U postgres > backup.sql

Dump de uma tabela apenas

pg_dump dbname -h localhost -U postgres > backup.sql --table=nome_tabela;

Dump de uma base apenas com algumas tabelas

pg_dump dbname -h localhost -U postgres > backup.sql --table=nome_tabela --table=outra_tabela;

Dump de uma base sem determinada tabela

pg_dump dbname -h localhost -U postgres > backup.sql --exclude-table=nome_tabela;

Dump de uma base excluindo várias tabelas

pg_dump dbname -h localhost -U postgres > backup.sql --exclude-table=nome_tabela --exclude-table=outra_tabela;

Restore de uma base

psql dbname -h localhost -U postgres < backup.sql

Dump dos usuários de uma base

pg_dumpall -g -U postgres -h localhost > users.sql

Comandos especiais em queries

Data

select (current_date + integer '7') as nome_campo;

Veja mais exemplos aqui.

Erros comuns

Duplicate key value violates unique constraint
Ao migrar uma base para PostgreSQL ou fazer alguma coisa errada sem querer, o seguinte erro pode aparecer:
PGError: ERROR: duplicate key value violates unique constraint “tablename_pkey”

Para resolver:

select setval('entities_id_seq', (select max(id) from entities)+1);

Personalizando o psql

alterando o pager

\pset pager off
\pset pager off
\pset pager always
\pset pager occasionally
\pset pager at random

Exebir ‘(null)’ quando um campo for null

\pset null '(null)'

Veja mais configurações aqui.

Ubuntu 10.04 + Ruby on Rails + PostgreSQL 8.4

Ubuntu 10.04 + Ruby on Rails + PostgreSQL 8.4

Atenção:

Esse post é uma cópia do README de um projeto que criei no final do ano passado, afim de organizar o passo-a-passo da instalação das ferramentas que uso (como Rails e PostgreSQL) e também de alguns dotfiles. Atualmente, já existe uma versão mais atual do Ubuntu e algumas coisas deste tutorial podem não funcionar corretamente. Então, recomendo que você verifique o tutorial atualizado na página inicial do projeto: http://github.com/lucascaton/lcaton-setuplinux.

Recentemente atualizei meu Ubuntu para a versão 10.04 e esse script de instalação está atualizado para ser usado nesta versão. Esses passos incluem a instalação do Ruby através do RVM, Rails 2.3.5, PostgreSQL 8.4 e algumas outras coisas. Sempre que eu atualizar o Ubuntu ou mudar algum procedimento ou ainda um dotfile, vou alterar no projeto do github também.


Versão atual: Ubuntu 10.04 (desktop edition – 32 bits)

Instalação básica

Antes de mais nada

sudo aptitude update

Open SSH Server

sudo aptitude install openssh-server

Git & gitg

sudo aptitude install git-core gitg

Curl

sudo aptitude install curl

Suporte à arquivos compactados

sudo aptitude install rar p7zip-full

GTK Record My Desktop e Mencoder / Mplayer

sudo aptitude install gtk-recordmydesktop mplayer mencoder ffmpeg

nmap (Usage ‘sudo nmap -sS ’ pra saber as portas abertas de uma máquina remota)

sudo aptitude install nmap

Criar DVDs e converter vídeos

sudo aptitude install devede

Gimp (a partir da versão 10.04 do Ubuntu o Gimp não vem instalado por padrão)

sudo aptitude install gimp

Fonts true type

sudo aptitude install msttcorefonts

Wine

sudo aptitude install wine

Copiar arquivos deste projeto

git clone git://github.com/lucascaton/lcaton-setuplinux.git ~/.setuplinux

Instalar fonte Monaco

sudo mkdir /usr/share/fonts/truetype/myfonts
cd /usr/share/fonts/truetype/myfonts
sudo cp ~/.setuplinux/files/Monaco_Linux.ttf .
sudo chown root:root Monaco_Linux.ttf
sudo mkfontdir
cd ..
fc-cache

Gvim

sudo aptitude install vim-gnome ncurses-term exuberant-ctags

Vimfiles

mv ~/.vim ~/vim_old
git clone git://github.com/lucascaton/cmarques-vimfiles.git ~/.vim
mv ~/.vimrc ~/vimrc_old
mv ~/.vim/vimrc ~/.vimrc

Gmate

git clone git://github.com/lexrupy/gmate.git
cd gmate && sh install.sh && cd .. && rm -rf gmate

DotFiles

cp ~/.setuplinux/dotfiles/.bashrc ~
cp ~/.setuplinux/dotfiles/.fonts.conf ~
cp ~/.setuplinux/dotfiles/.gemrs ~
cp ~/.setuplinux/dotfiles/.gitconfig ~
cp ~/.setuplinux/dotfiles/.irbrc ~

PostgreSQL

sudo aptitude install postgresql postgresql-contrib libpq-dev pgadmin3

Configurar a senha do PostgreSQL

sudo passwd postgres
su - postgres
psql -c "ALTER USER postgres WITH PASSWORD 'sua_senha'" -d template1

Sqlite3

sudo aptitude install sqlite3

JDK

sudo aptitude install openjdk-6-jre-headless

Ruby on Rails

Bibliotecas necessárias

Readline headers

sudo aptitude install libreadline5-dev

C++ compiler (necessário para o Ruby)

sudo aptitude install build-essential

OpenSSL development headers (necessário para o Ruby)

sudo aptitude install libssl-dev

Sqlite support

sudo aptitude install libsqlite3-dev sqlite-dev libdbd-sqlite3-ruby libsqlite3-ruby libsqlite3-ruby1.8

Mysql Client (necessário para a gem ‘mysql’)

sudo aptitude install libmysqlclient15-dev

libxslt (necessário para a gem ‘capybara’)

sudo aptitude install libxslt-dev

Sphinx (necessário para a gem ‘thinking-sphinx’)

wget http://www.sphinxsearch.com/downloads/sphinx-0.9.9.tar.gz
tar -xzvf sphinx-0.9.9.tar.gz && cd sphinx-0.9.9
./configure --with-pgsql && sudo make && sudo make install
cd .. && rm -rf sphinx-0.9.9

Image Magick (necessário para a gem ‘gruff’)

sudo aptitude install imagemagick libmagick9-dev

Cups Sys (necessário para a gem ‘cups’)

sudo apt-get install libcupsys2-dev

Avahi – dnssd (necessário para a gem ‘specjour’)

sudo apt-get install libavahi-compat-libdnssd-dev

RVM

bash < <( curl http://rvm.beginrescueend.com/releases/rvm-install-head )

Atualizar RVM

rvm update --head

Rubies

rvm install ree
rvm install ruby-1.9.1
rvm install jruby

Gemset

gem sources -a http://gems.github.com
rvm gemset create caton
cp ~/.setuplinux/files/caton.gems .
rvm gemset import caton.gems
rm caton.gems
rvm --default ree@caton

Outros

Outros softwares:

  • Google Chrome
  • TweetDeck
  • Eclipse (IDE)
  • Skype