Today is not the best day of my one-month-old career as a programmer.
My boss told me that he was planning on initiating a new project that was to be written in PHP. That means we have to build, test, and implement a brand new PHP-based framework. So, the big guy told me to review some of the most popular open source PHP frameworks available on the net. I looked into CakePHP, CodeIgniter, PRADO, and some other stuff. But he was more interested in the Zend Framework. “Okay… I’ll take a look into it”, I said to him.
He also told me that I was now in charge of the HP ProLiant server he had right next to his desk. I can do whatever I want with it. It already had openSUSE in it, but I was given permission to format the hard disk and put anything I want on it, anything that suits me best for the development process of our newly established project. After struggling to find where everything was in openSUSE’s desktop, I immediately found out that the postgreSQL server installation on it was flawed, mainly because it was installed twice. Once from an RPM package and once from source. What a mess. I was faced with the daunting task of finding out where the two installation’s configuration files conflict and resolve them.
But I had a better idea: format the darn disk and install Ubuntu Server!
So I did it. I installed Ubuntu Server 8.04 with LAMP and postgreSQL, added user profiles for my colleagues, put them on the sudoers list, enabled Samba and added user profiles to it, mirrored the postgreSQL documentation site and aliased it to the Apache server. Next, I tried to access the postgreSQL with pgAdmin3 from my laptop. This is the part where I say “Houston, we have a problem”.
The pgAdmin popped up a message that the server is not listening. **is it deaf?** So, I tried to tweak the settings here and there, but then I stopped cold because I couldn’t find where the postgres.conf and pg_hba.conf files were. After an extensive search using locate and a misleading googling session, my colleague told me to install postgreSQL server from source. So I did what he said: I downloaded the source tarball, installed it with him first thing this morning (I need him to guide me with all the confusing configuration parameters), and got the server up and running locally. After that, I redefined some parameters so that the server would accept incoming connections from other machines. Done.
Next, I opened up my pgAdmin again and tried to connect. Voila! It connected. But right after the connection was established, pgAdmin complained about some error that it found on the system database scheme. So I started to think: WTF???
After consulting with my colleagues, I decided to erase the source installation and installed again from source. I did this about 3 or 4 times before finally giving up. The two error messages that kept popping up were:
ERROR: column op.oprlsortop does not exist LINE 12: LEFT OUTER JOIN pg_operator lso ON lso.oid=op.oprlsortop ERROR: column "opcamid" does not exist LINE 3: JOIN pg_am am ON am.oid=opcamid
So, I searched for these two errors on the net and came up with zero results. Okay, so installing from source solved the problem but introduced a new one. So I opted back to searching the Ubuntu repos for an apt-get possibility. Then I did apt-get install postgresql-8.3 postgresql-client postgresql-contrib. This did not solve the problem. I fell back to installing postgreSQL 8.2, but it didn’t do any good. Fine. I give up. This is enough troubleshooting for one day.
So, I went home without any progress whatsoever…
Just now, I looked deeper into postgreSQL.org and elsewhere searching for the word “oprlsortop” (what a funny name, can you say it without twisting your tongue and your brain?). I read the first entry that came up on Google and immediately found out that the pgAdmin version I was using was too old. Yes, too old! What a silly mistake! Some guy at Nabble was pondering about the same trouble and another guy said that pgAdmin 1.4.3 is way too old for postgreSQL 8.3. Okay, I got the source of the problem, but I’ll have to wait until next Monday to fix it. I will not risk compromising my own development environment. I’ll do it on my PC at the office.
By the way, this brings out another question: Will the JDBC driver work with postgreSQL 8.3? We’ll have to see for ourselves next Monday.
I guess getting old is a problem, especially with pgAdmin…