Jedi Tux

Atualização do PostgreSQL para 9.2 – Arch Linux

Posted in Dicas, Servers by Fernando Basso on 28 de setembro de 2012

----------------------------------------------------
bash-4.2, vaio@nando, Fri Sep 28 07:37:53 
$PWD="~/"  
$ sudo rc.d start postgresql 
[sudo] password for nando: 
:: Starting PostgreSQL

[BUSY] pg_ctl: could not start server
               Examine the lot output

    vim /var/log/postgresql.log

FATAL:   database files are incompatible with server 6009
DETAIL:  The data directory was initialized by PostgreSQL version 9.1, which
is not compatible with this version 9.2.1.

-------------------------------------------------------------------------------
http://www.postgresql.org/docs/current/static/upgrading.html

NOTA: É possível fazer isso com a versão 9.2, mas como no meu caso eu nem consegui
inicializar o postgresql com ela, fiz com a 9.1 mesmo.

    sudo pacman -U /var/cache/pacman/pkg/postgresql-9.1.4-1-i686.pkg.tar.xz


Primeiro de tudo, salvar o banco de dados atual, com a versão 9.1 do postgresql
rodando:

    pg_dumpall > postgresql_backup_completo.sql

Mas aí teve algo errado, pois ele ficava peding a senha do usuário linha após
linha, e com
    pg_dumpall -U postgres ...

aconteceu a mesma coisa.

vim ~/.pgpass
localhost:5432:db_nando:nando:1234

Mas pra fazer o backup de tudo, temos que deixar o campo que especifica
a database com "*":
localhost:5432:*:nando:1234

http://www.postgresql.org/docs/9.2/static/libpq-pgpass.html
On Unix systems, the permissions on .pgpass must disallow any access to world
or group; achieve this by the command chmod 0600 ~/.pgpass. If the permissions
are less strict than this, the file will be ignored. On Microsoft Windows,
it is assumed that the file is stored in a directory that is secure, so no
special permissions check is made.


(08:29)  gciolli: Should ~/.pgpass allow my to just type psql and connect 
                     without any further iteration?
(08:31)  FernandoBasso: .pgpass only takes care of not having to type the 
                     password, all the other options are handled via environment 
                     variables like PGUSER, etc.

http://www.postgresql.org/docs/9.2/static/libpq-envars.html
Pode ser no bashrc.
export PGUSER=myFavouritePostgresUser
export PGDATABASE=db_nando

Agora já devemos estar podento digitar apenas "psql" pra logar sem
ter que especificar o password nem a database.

--------------------------- // ----------------------- // -----------------

Agora deve funcionar:
    pg_dumpall > postgressql_backup_completo_upgrade_para_9.2

    sudo rc.d stop postgresql (arch linux)

    cd /var/lib/postgres
    mv data bkp_data_9.1

    rc.d start postgresql
    rc.d stopt postgresql

    cp bkp_data_9.1/pg_hba.conf data/
    cp bkp_data_9.1/postgresql.conf data/


    vim data/pg_hba.conf

E seta
    host    all     all    127.0.0.1/32     md5
para
    host    all     all    127.0.0.1/32     trust

por que os passwords e usuários não vão funcionar mais.

    psql -U postgres


Criamos um usuário:

    CREATE ROLE admin WITH LOGIN PASSWORD 'admin' CREATEDB CREATEROLE; 
    ALTER USER admin VALID UNTIL 'infinity';

Colocamos uma senha para o superuser postgres:
    ALTER USER postgres WITH PASSWORD 'serect_passwd';

Recuperar os dados (deu alguns avisos aqui, mas funcionou tudo mesmo assim):

    psql -d postgres -f postgresql_backup_completo.sql

Coloca os 'trust' para 'md5' novamente no arquivo pg_hba.conf.

Reinicia o postgres e já deve estar tudo ok.


For further reading:

https://wiki.archlinux.org/index.php/PostgreSQL#Upgrading_PostgreSQL
http://www.postgresql.org/docs/current/static/upgrading.html



Idea – Java IDE + Vim

Posted in Dicas by Fernando Basso on 15 de setembro de 2012

Idea Java IDE e ideaVim

 

Recentemente iniciei meus estudos de Java, e realmente, por mais que eu prefira o Vim para tudo, é tortura querer programar Java nele, pois tem toda aquela história de packages, classes, access modifiers, imports, e tudo mais, e uma IDE especial para Java é muito mais prática do que o meu querido Vim.
Para mim, o problema com as IDEs é o editor, que são horríveis. Qualquer conhecedor de Vim (ou Emacs) sabe do que eu estou falando. As IDEs podem ter um milhão de qualidades, mas o editor não é uma delas, pelo menos não nas IDEs das quais eu já tive conhecimento até hoje.

Já tentei plugins para o Eclipse (eclim, vimplugin) e Netbeans (jVi). Ajudam bastante mas não consegui me adaptar a nenhum deles. Lendo na web acabei por encontrar alguém mencionando em um fórum dessa IDE chamada Idea, eu que havia um excelente plugin que oferece mode de edição igual ao Vim para ela. Resolvi testar.

http://www.jetbrains.com/idea/features/index.html

Idea – Instalação

No Arch Linux, basta instalar o pacote, pois está nos repositórios oficiais (pelo visto há uma versão paga também).


sudo pacman -S intellij-idea-community-edition

É lógico que você precisa ter o JDK e JRE instalado. Aparentemente, a equipe de desenvolvimento não suporta o OpenJDK oficialmente, mas dizem que funciona normalmente. Eu, particularmente, tenho os pacotes jre e jdk instalados do AUR (wiki, aur).

Apenas para constar, eu gerencio os pacotes provenientes do AUR usando o excelente aurget (todo em bash). Funciona perfeitamente bem para mim.

Depois de instalado, basta rodar, tanto pelo terminal, ou através de algum run-dialog (geralmente Alt+F2) e digitar


idea.sh

É um script que reside em /usr/bin/ e inicia a IDE para nós.
Na momento de criar o primeiro projeto, você será perguntando sobre o caminho do JDK no sistema. Basta executar o seguinte comando para descobrir:


echo $JAVA_HOME

No meu caso, no Arch Linux, bastou colocar /opt/java/ e pronto.

ideaVim

File –> Settings –> Plugins, clique em “Browser repositories” e pesquise por “ideaVim”. Clique com o botão direito em cima do nome do plugin  e escolha “Download and install”. Pode fechar as duas janelas clicando em OK e você verá a informação do download na parte inferior da janela principal da IDE. Apos instalado, basta reiniciar IDE e o plugin já deve vir habilitado por padrão. Em “Tools” você vai ver uma opção para habilitar e desabilitar o plugin.
Uma coisa que gostei bastante é que até Visual-Block Selection funciona, algo que senti falta em outros plugins para outras IDEs. Uso isso muito para comentar pedaços inteiros de código quando necessário. Para quem não sabe, imagine que você quer comentar as primeiras 5 linhas de código, basta se posicionar na primeira coluna (caractere) da primeira linha (no modo normal), pressionar Ctrl-V, 5jI// e então pressionar <Esc>. Para remover faz-se a mesma seleção e digita-se algum comando de deleção, como o “x”, por exemplo.
Outra coisa que gostei é a maneira como a IDE usa uma leve linha pontilhada mostrando o abrir e fechar de blocos, embora ele mostre o qual { é o par que casa com um } e vice-versa destacando-os com uma cor diferente, assim como o Vim já faz por padrão.

Dicas

Ctrl+Shift+a permite que você pesquise por uma opção ou configuração. Tente pesquisar por plugins, por exemplo. Ctrl+Shift+n permite pesquisar e abrir arquivos.

Outra muito legal, é quando, digamos que você está no main() usando um método chamado listFuncionarios(). Com o cursor em cima do nome do método, digitar Ctrl+Alt+b leva você para a classe e local de definição do método. Isso muito útil já que muitas vezes, somente ao utilizarmos um método percebemos falhas e então temos que voltar nele e melhorar o código.

De vez em quando, acesse Help –> Productivity Guide, clique em “Used” de forma a deixar a setinha apontando para baixo, e dê uma olhada nas coisas para ver o que você usa mais, e o que você poderia estar usando mas não está.

Shortcuts são sempre bem vindos:

http://www.jetbrains.com/resharper/webhelp/Reference__Keyboard_Shortcuts.html

http://stackoverflow.com/questions/294167/what-are-the-most-useful-intellij-idea-keyboard-shortcuts
Se alguém quiser dar sugestões e dicas, pode mandar nos comentários (os créditos serão reconhecidos). Quem tiver algum post sobre issa excelente IDE, por favor não deixe de compartilhar também.

Tagged with: , , ,