Archive for Agosto, 2009

MySQL – Comparação de nomes de tabelas

Essa semana estava publicando um banco de dados em ambiente de produção ( ambiente meio que completamente diferente do ambiente de desenvolvimento :S … mas tudo bem ) e o restore insistia em retornar uma mensagem de erro ao tentar inserir os registros pois não encontrava a tabela que tinha acabado de criar. Isso estava acontecendo pq em produção o nome da tabela estava em lower case e no script em upper case. Nunca prestei atenção nessa característica do mysql, pra mim era case insensitive … mas pelo visto não é :) – contra fatos, não há argumentos já dizia Bento XVI.

Procurando no pai dos burros, descobri que a solução é bem simples, basta definir a variável lower_case_table_names no my.cnf/my.ini … na seção mysqld.

Os valores possíveis são:

  • 0 (Zero) – Os nomes são armazenados na forma original, como informado no comando CREATE e a comparação é case sensitive.
  • 1 (Um) – Os nomes são armazenados em lower case e a comparação é case insensitive.
  • 2 (Dois) – Os nomes são armazenados na forma original, como informado no comando CREATE e a comparação é case insensitive – Essa forma funciona apenas em sistemas case insensitive.

Em meu caso eu tinha um servidor de desenvolvimento Linux e produção Windows Server (tudo a ver heheheh) e usei em ambos a opção 1. Ficando assim:

[mysqld]

lower_case_table_names = 1

Maiores detalhes: http://dev.mysql.com/doc/refman/5.0/en/identifier-case-sensitivity.html

Abraços

Add comment Agosto 20, 2009

CodeIgniter: Remover index.php da URL

Estou iniciando com o CodeIgniter e me deparei com um pequeno problema que aparentemente não chegava nem a ser um problema – remover o index.php da URL. Aparentemente era só criar uma regra no htaccess e a mágica estaria feita … não foi bem assim que aconteceu :)

Resolvi da seguinte forma:

1. Habilitar o ModRewrite no Apache

Abra o httpd.conf e descomente a linha LoadModule rewrite_module modules/mod_rewrite.so e reinicie o apache.

2.  htaccess

Crie um .htaccess na raiz do seu projeto. O arquivo deve estar no mesmo nível da pasta system.

RewriteEngine on
RewriteCond $1 !^(index\.php|system|images)
RewriteRule ^(.*)$ /index.php/$1

Muita atenção com as barras (/). A maioria das dicas e tutoriais que você vai encontrar por ai leva em conta que seu projeto está no document root e não em um alias (diretório virtual). Se você estiver usando um diretório virtual use o RewriteBase para indicar qual a url base de seu projeto e em RewriteRule remova a barra da frente de index.php para indicar que o arquivo não está na raiz do servidor (document root) e sim no diretório virtual.

RewriteEngine on
RewriteBase /meu_projeto/
RewriteCond $1 !^(index\.php|system|images)
RewriteRule ^(.*)$ index.php/$1

3. config.php

Aqui foi onde eu apanhei feito mala velha. Depois de criar a regra no htacess, o modrewrite não funcionava .. não sei bem ainda o por quê, mas encontrei em um fórum que era necessário alterar uma linha do config.php na pasta application.
Altere a linha $config['index_page'] = “index.php” para $config['index_page'] = “”.

Pronto, problema resolvido.

Abraços

13 comments Agosto 12, 2009


 

Agosto 2009
S T Q Q S S D
« Jun   Set »
 12
3456789
10111213141516
17181920212223
24252627282930
31  

Arquivos

Tópicos recentes

Tags

Addfont apache Aplicações audio bash Carreira desabilitado desativado Desktop diminuir Documento emprego Encoding Firefox FPDF Gerenciador Google GTK+ HDA iconv iReport Jasper jasperserver Java Linux MakeFont mudo mysql Partição PDF Perl PHP postgres procedure redimensionar Relatorio script shell shrink SLACKWARE som ttf2pt1 vaga Vista Windows

Categorias

Blogroll