# Problem: Null values in a CSV format fixture show up a 0 in

**URL:** <https://www.ruby-forum.com/t/problem-null-values-in-a-csv-format-fixture-show-up-a-0-in/71922>\
**Category:** Rails\
**Created:** [February 22, 2006, 5:55pm UTC](https://www.ruby-forum.com/t/problem-null-values-in-a-csv-format-fixture-show-up-a-0-in/71922 "2006-02-22T17:55:03Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Steven\_Chanin](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/8e8cbc/32.png) [@Steven\_Chanin](https://www.ruby-forum.com/u/Steven_Chanin)\
**Post date:** [February 22, 2006, 5:55pm UTC](https://www.ruby-forum.com/t/problem-null-values-in-a-csv-format-fixture-show-up-a-0-in/71922/1 "2006-02-22T17:55:03Z")

</div>

Hi all,

I’m running into a strange problem. I’m trying to get null values to  
load from a fixture in CSV form into my test database, but they show  
up as 0 (zero).

I have a table people (simplified version below)

create table people (  
id int not null auto\_increment,  
target int null default null,  
name varchar(50) not null,  
primary key(id)  
);

that has a column target which can be null. In my development  
database many people have null values for target.

In my unit tests, I want to be able to use all the people (a couple  
of hundred), so I exported people from MySQL 4.1.12-standard in CSV  
format using the following command:

```
select * into outfile '/tmp/people.csv' fields terminated by ','

```

optionally enclosed by ‘"’ lines terminated by ‘\n’ from people;

That gives me a CSV file with null values represented as \N

According to the fixtures documentation, to get a null value inserted  
into your test database from a CSV, you should have nothing between  
the commas.

```
"nulls can be achived by just placing a comma, for example,

```

(1,sclaus,false,) minus the parenthesis of course."  
[Peak Obsession](http://manuals.rubyonrails.com/read/chapter/26)

So I went through and replaced \N with nothing … as a result rows  
that previously looked like:

```
7,\N,"Steve"

```

now look like

```
7,,"Steve"

```

The rails unit test libraries load the fixture without any complaints.

BUT…

wherever I had a null for target in my development database, I now  
have a 0 my test database.

This is a problem because 0 is an illegal value for a target…  
targets must be positive or non-existant. As a result, the  
validation on my model (person.rb::validate) is failing and my unit  
tests are throwing errors.

As a work around, I commented out my validate, but I’d like to turn  
it back on.

I’m running the following:  
Mac OSX 10.4.5  
Ruby 1.8.2 (2004-12-25) [powerpc-darwin8.0]  
Rails 1.0.0

Thanks for any help.  
-Steve
