Problem loading integer data into database using fixture

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

Problem loading integer data into database using fixture

Gchorn
Hello All,

I'm attempting to provide initial data for my database using a fixture
file (like this: https://docs.djangoproject.com/en/1.3/howto/initial-data/#providing-initial-data-with-fixtures),
but I'm running into the following error:

Problem installing fixture '/home/guillaume/NBA/players/fixtures/
player_data.yaml': Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/
commands/loaddata.py", line 169, in handle
    for obj in objects:
  File "/usr/local/lib/python2.7/dist-packages/django/core/serializers/
pyyaml.py", line 54, in Deserializer
    for obj in PythonDeserializer(yaml.load(stream), **options):
  File "/usr/local/lib/python2.7/dist-packages/django/core/serializers/
python.py", line 122, in Deserializer
    data[field.attname] =
field.rel.to._meta.get_field(field.rel.field_name).to_python(field_value)
  File "/usr/local/lib/python2.7/dist-packages/django/db/models/fields/
__init__.py", line 471, in to_python
    raise exceptions.ValidationError(self.error_messages['invalid'])
ValidationError: [u'This value must be an integer.']

Here is a sample from the YAML fixture file I'm attempting to use:

- model: players.player
  pk: 2
  fields:
    team: DEN
    first_name: Arron
    last_name: Afflalo
    age: 26
    pos:  SG
    gp: 25
    mp: 754
    fg: 98
    fga: 227
    ft: 62
    fta: 78
    three_pointers: 31
    threes_attempted: 81
    orb: 15
    drb: 51
    ast: 39
    stl: 15
    blk: 6
    tov: 33
    pf: 55
    pts: 289

Isn't what I have there mostly integers?  I've already checked my
models.py file to make sure I didn't accidentally use an
"IntegerField" for "team", "first_name", "last_name", or "pos."  Do I
need to include some other kind of formatting information in my YAML
file to indicate that the numbers are integers?

thanks,
Guillaume

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.

Reply | Threaded
Open this post in threaded view
|

Re: Problem loading integer data into database using fixture

Bill Freeman-3
Well, I don't know yaml, but if you are in a place where you don't
have to quote:

   Arron

then I'd expect everything to be strings.

Is there a yaml.dump that you can apply to a model with strings and
integers to see how it thinks they are distinguished?


On 2/16/12, Gchorn <[hidden email]> wrote:

> Hello All,
>
> I'm attempting to provide initial data for my database using a fixture
> file (like this:
> https://docs.djangoproject.com/en/1.3/howto/initial-data/#providing-initial-data-with-fixtures),
> but I'm running into the following error:
>
> Problem installing fixture '/home/guillaume/NBA/players/fixtures/
> player_data.yaml': Traceback (most recent call last):
>   File "/usr/local/lib/python2.7/dist-packages/django/core/management/
> commands/loaddata.py", line 169, in handle
>     for obj in objects:
>   File "/usr/local/lib/python2.7/dist-packages/django/core/serializers/
> pyyaml.py", line 54, in Deserializer
>     for obj in PythonDeserializer(yaml.load(stream), **options):
>   File "/usr/local/lib/python2.7/dist-packages/django/core/serializers/
> python.py", line 122, in Deserializer
>     data[field.attname] =
> field.rel.to._meta.get_field(field.rel.field_name).to_python(field_value)
>   File "/usr/local/lib/python2.7/dist-packages/django/db/models/fields/
> __init__.py", line 471, in to_python
>     raise exceptions.ValidationError(self.error_messages['invalid'])
> ValidationError: [u'This value must be an integer.']
>
> Here is a sample from the YAML fixture file I'm attempting to use:
>
> - model: players.player
>   pk: 2
>   fields:
>     team: DEN
>     first_name: Arron
>     last_name: Afflalo
>     age: 26
>     pos:  SG
>     gp: 25
>     mp: 754
>     fg: 98
>     fga: 227
>     ft: 62
>     fta: 78
>     three_pointers: 31
>     threes_attempted: 81
>     orb: 15
>     drb: 51
>     ast: 39
>     stl: 15
>     blk: 6
>     tov: 33
>     pf: 55
>     pts: 289
>
> Isn't what I have there mostly integers?  I've already checked my
> models.py file to make sure I didn't accidentally use an
> "IntegerField" for "team", "first_name", "last_name", or "pos."  Do I
> need to include some other kind of formatting information in my YAML
> file to indicate that the numbers are integers?
>
> thanks,
> Guillaume
>
> --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To post to this group, send email to [hidden email].
> To unsubscribe from this group, send email to
> [hidden email].
> For more options, visit this group at
> http://groups.google.com/group/django-users?hl=en.
>
>

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.

Reply | Threaded
Open this post in threaded view
|

Re: Problem loading integer data into database using fixture

Gchorn
Thanks very much for the reply.  I went ahead and created a model
instance using the API, and then tried to get a yaml dump of this.
However, I'm running into another (newb) problem.  The database I'm
using is under a different username (I'm doing all of this in Ubuntu
Linux 11.10), which I understood to be good practice.  However, when I
do a python manage.py shell I have to already be in one user name or
another.  The database username gives me access to the database
through the API, but then I can't create a data dump file because I
don't have file write access under that username.  I can't be under
both usernames at once can I?  Do I just need to give write-access to
the database username as well?  If so how do I do that (I know we're
veering away from Django here, sorry)?

On Feb 17, 1:13 am, Bill Freeman <[hidden email]> wrote:

> Well, I don't know yaml, but if you are in a place where you don't
> have to quote:
>
>    Arron
>
> then I'd expect everything to be strings.
>
> Is there a yaml.dump that you can apply to a model with strings and
> integers to see how it thinks they are distinguished?
>
> On 2/16/12, Gchorn <[hidden email]> wrote:
>
>
>
>
>
>
>
> > Hello All,
>
> > I'm attempting to provide initial data for my database using a fixture
> > file (like this:
> >https://docs.djangoproject.com/en/1.3/howto/initial-data/#providing-i...),
> > but I'm running into the following error:
>
> > Problem installing fixture '/home/guillaume/NBA/players/fixtures/
> > player_data.yaml': Traceback (most recent call last):
> >   File "/usr/local/lib/python2.7/dist-packages/django/core/management/
> > commands/loaddata.py", line 169, in handle
> >     for obj in objects:
> >   File "/usr/local/lib/python2.7/dist-packages/django/core/serializers/
> > pyyaml.py", line 54, in Deserializer
> >     for obj in PythonDeserializer(yaml.load(stream), **options):
> >   File "/usr/local/lib/python2.7/dist-packages/django/core/serializers/
> > python.py", line 122, in Deserializer
> >     data[field.attname] =
> > field.rel.to._meta.get_field(field.rel.field_name).to_python(field_value)
> >   File "/usr/local/lib/python2.7/dist-packages/django/db/models/fields/
> > __init__.py", line 471, in to_python
> >     raise exceptions.ValidationError(self.error_messages['invalid'])
> > ValidationError: [u'This value must be an integer.']
>
> > Here is a sample from the YAML fixture file I'm attempting to use:
>
> > - model: players.player
> >   pk: 2
> >   fields:
> >     team: DEN
> >     first_name: Arron
> >     last_name: Afflalo
> >     age: 26
> >     pos:  SG
> >     gp: 25
> >     mp: 754
> >     fg: 98
> >     fga: 227
> >     ft: 62
> >     fta: 78
> >     three_pointers: 31
> >     threes_attempted: 81
> >     orb: 15
> >     drb: 51
> >     ast: 39
> >     stl: 15
> >     blk: 6
> >     tov: 33
> >     pf: 55
> >     pts: 289
>
> > Isn't what I have there mostly integers?  I've already checked my
> > models.py file to make sure I didn't accidentally use an
> > "IntegerField" for "team", "first_name", "last_name", or "pos."  Do I
> > need to include some other kind of formatting information in my YAML
> > file to indicate that the numbers are integers?
>
> > thanks,
> > Guillaume
>
> > --
> > You received this message because you are subscribed to the Google Groups
> > "Django users" group.
> > To post to this group, send email to [hidden email].
> > To unsubscribe from this group, send email to
> > [hidden email].
> > For more options, visit this group at
> >http://groups.google.com/group/django-users?hl=en.

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.

Reply | Threaded
Open this post in threaded view
|

Re: Problem loading integer data into database using fixture

Bill Freeman-3
The database user and *nix user are (typically) unrelated.  The
database user is specified in settings.py and there is also a password
if necessary.  Since one usually communicates with database servers
using network connections (even on the same box), it doesn't really
know what user a connection came from.

Unless you are using sqlite3 as your database, in which case you just
need to copy and change the ownership of the database file (may
require sudo).


On 2/16/12, Gchorn <[hidden email]> wrote:

> Thanks very much for the reply.  I went ahead and created a model
> instance using the API, and then tried to get a yaml dump of this.
> However, I'm running into another (newb) problem.  The database I'm
> using is under a different username (I'm doing all of this in Ubuntu
> Linux 11.10), which I understood to be good practice.  However, when I
> do a python manage.py shell I have to already be in one user name or
> another.  The database username gives me access to the database
> through the API, but then I can't create a data dump file because I
> don't have file write access under that username.  I can't be under
> both usernames at once can I?  Do I just need to give write-access to
> the database username as well?  If so how do I do that (I know we're
> veering away from Django here, sorry)?
>
> On Feb 17, 1:13 am, Bill Freeman <[hidden email]> wrote:
>> Well, I don't know yaml, but if you are in a place where you don't
>> have to quote:
>>
>>    Arron
>>
>> then I'd expect everything to be strings.
>>
>> Is there a yaml.dump that you can apply to a model with strings and
>> integers to see how it thinks they are distinguished?
>>
>> On 2/16/12, Gchorn <[hidden email]> wrote:
>>
>>
>>
>>
>>
>>
>>
>> > Hello All,
>>
>> > I'm attempting to provide initial data for my database using a fixture
>> > file (like this:
>> >https://docs.djangoproject.com/en/1.3/howto/initial-data/#providing-i...),
>> > but I'm running into the following error:
>>
>> > Problem installing fixture '/home/guillaume/NBA/players/fixtures/
>> > player_data.yaml': Traceback (most recent call last):
>> >   File "/usr/local/lib/python2.7/dist-packages/django/core/management/
>> > commands/loaddata.py", line 169, in handle
>> >     for obj in objects:
>> >   File "/usr/local/lib/python2.7/dist-packages/django/core/serializers/
>> > pyyaml.py", line 54, in Deserializer
>> >     for obj in PythonDeserializer(yaml.load(stream), **options):
>> >   File "/usr/local/lib/python2.7/dist-packages/django/core/serializers/
>> > python.py", line 122, in Deserializer
>> >     data[field.attname] =
>> > field.rel.to._meta.get_field(field.rel.field_name).to_python(field_value)
>> >   File "/usr/local/lib/python2.7/dist-packages/django/db/models/fields/
>> > __init__.py", line 471, in to_python
>> >     raise exceptions.ValidationError(self.error_messages['invalid'])
>> > ValidationError: [u'This value must be an integer.']
>>
>> > Here is a sample from the YAML fixture file I'm attempting to use:
>>
>> > - model: players.player
>> >   pk: 2
>> >   fields:
>> >     team: DEN
>> >     first_name: Arron
>> >     last_name: Afflalo
>> >     age: 26
>> >     pos:  SG
>> >     gp: 25
>> >     mp: 754
>> >     fg: 98
>> >     fga: 227
>> >     ft: 62
>> >     fta: 78
>> >     three_pointers: 31
>> >     threes_attempted: 81
>> >     orb: 15
>> >     drb: 51
>> >     ast: 39
>> >     stl: 15
>> >     blk: 6
>> >     tov: 33
>> >     pf: 55
>> >     pts: 289
>>
>> > Isn't what I have there mostly integers?  I've already checked my
>> > models.py file to make sure I didn't accidentally use an
>> > "IntegerField" for "team", "first_name", "last_name", or "pos."  Do I
>> > need to include some other kind of formatting information in my YAML
>> > file to indicate that the numbers are integers?
>>
>> > thanks,
>> > Guillaume
>>
>> > --
>> > You received this message because you are subscribed to the Google
>> > Groups
>> > "Django users" group.
>> > To post to this group, send email to [hidden email].
>> > To unsubscribe from this group, send email to
>> > [hidden email].
>> > For more options, visit this group at
>> >http://groups.google.com/group/django-users?hl=en.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To post to this group, send email to [hidden email].
> To unsubscribe from this group, send email to
> [hidden email].
> For more options, visit this group at
> http://groups.google.com/group/django-users?hl=en.
>
>

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.

Reply | Threaded
Open this post in threaded view
|

Re: Problem loading integer data into database using fixture

Gchorn
Unfortunately, that doesn't seem to be the case.  I have the database
user and password in my settings.py file, but I still have to do a
"sudo su postgres" to switch to postgres in the terminal before I can
access my PostgreSQL database through the Django database API.
Otherwise when I try to access it through my normal username
"guillaume", I get:

Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/django/db/models/
query.py", line 69, in __repr__
    data = list(self[:REPR_OUTPUT_SIZE + 1])
  File "/usr/local/lib/python2.7/dist-packages/django/db/models/
query.py", line 84, in __len__
    self._result_cache.extend(self._iter)
  File "/usr/local/lib/python2.7/dist-packages/django/db/models/
query.py", line 273, in iterator
    for row in compiler.results_iter():
  File "/usr/local/lib/python2.7/dist-packages/django/db/models/sql/
compiler.py", line 680, in results_iter
    for rows in self.execute_sql(MULTI):
  File "/usr/local/lib/python2.7/dist-packages/django/db/models/sql/
compiler.py", line 734, in execute_sql
    cursor = self.connection.cursor()
  File "/usr/local/lib/python2.7/dist-packages/django/db/backends/
__init__.py", line 250, in cursor
    cursor = self.make_debug_cursor(self._cursor())
  File "/usr/local/lib/python2.7/dist-packages/django/db/backends/
postgresql_psycopg2/base.py", line 140, in _cursor
    self.connection = Database.connect(**conn_params)
OperationalError: FATAL:  Peer authentication failed for user
"postgres"

However, I found a way around the "out" file issue I mentioned
earlier; I did a search for my yaml file and changed the write
permission on it to all users, so I was then able to access it while
in the API under the postgres username.  After I did so and attempted
to write serialized data to it, I got the following error:

>>> yaml_serializer.serialize(Player.objects.all(),stream=out)
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/django/core/serializers/
base.py", line 55, in serialize
    return self.getvalue()
  File "/usr/local/lib/python2.7/dist-packages/django/core/serializers/
pyyaml.py", line 44, in getvalue
    return self.stream.getvalue()
AttributeError: 'file' object has no attribute 'getvalue'

It does seem to have written to the yaml output file.  In that, I got:

- fields: {age: 25, ast: 1, blk: 2, drb: 17, fg: 7, fga: 16,
first_name: Jeff, ft: 7,
    fta: 12, gp: 8, last_name: Adrien, mp: 63, orb: 5, pf: 13, pos:
SF, pts: 21, stl: 0,
    team: 1, three_pointers: 0, threes_attempted: 0, tov: 2}
  model: players.player
  pk: 1

But now I'm wondering what the error the API kicked was about...anyone
know?

thanks,
Guillaume



On Feb 17, 7:50 am, Bill Freeman <[hidden email]> wrote:

> The database user and *nix user are (typically) unrelated.  The
> database user is specified in settings.py and there is also a password
> if necessary.  Since one usually communicates with database servers
> using network connections (even on the same box), it doesn't really
> know what user a connection came from.
>
> Unless you are using sqlite3 as your database, in which case you just
> need to copy and change the ownership of the database file (may
> require sudo).
>
> On 2/16/12, Gchorn <[hidden email]> wrote:
>
>
>
>
>
>
>
> > Thanks very much for the reply.  I went ahead and created a model
> > instance using the API, and then tried to get a yaml dump of this.
> > However, I'm running into another (newb) problem.  The database I'm
> > using is under a different username (I'm doing all of this in Ubuntu
> > Linux 11.10), which I understood to be good practice.  However, when I
> > do a python manage.py shell I have to already be in one user name or
> > another.  The database username gives me access to the database
> > through the API, but then I can't create a data dump file because I
> > don't have file write access under that username.  I can't be under
> > both usernames at once can I?  Do I just need to give write-access to
> > the database username as well?  If so how do I do that (I know we're
> > veering away from Django here, sorry)?
>
> > On Feb 17, 1:13 am, Bill Freeman <[hidden email]> wrote:
> >> Well, I don't know yaml, but if you are in a place where you don't
> >> have to quote:
>
> >>    Arron
>
> >> then I'd expect everything to be strings.
>
> >> Is there a yaml.dump that you can apply to a model with strings and
> >> integers to see how it thinks they are distinguished?
>
> >> On 2/16/12, Gchorn <[hidden email]> wrote:
>
> >> > Hello All,
>
> >> > I'm attempting to provide initial data for my database using a fixture
> >> > file (like this:
> >> >https://docs.djangoproject.com/en/1.3/howto/initial-data/#providing-i...),
> >> > but I'm running into the following error:
>
> >> > Problem installing fixture '/home/guillaume/NBA/players/fixtures/
> >> > player_data.yaml': Traceback (most recent call last):
> >> >   File "/usr/local/lib/python2.7/dist-packages/django/core/management/
> >> > commands/loaddata.py", line 169, in handle
> >> >     for obj in objects:
> >> >   File "/usr/local/lib/python2.7/dist-packages/django/core/serializers/
> >> > pyyaml.py", line 54, in Deserializer
> >> >     for obj in PythonDeserializer(yaml.load(stream), **options):
> >> >   File "/usr/local/lib/python2.7/dist-packages/django/core/serializers/
> >> > python.py", line 122, in Deserializer
> >> >     data[field.attname] =
> >> > field.rel.to._meta.get_field(field.rel.field_name).to_python(field_value)
> >> >   File "/usr/local/lib/python2.7/dist-packages/django/db/models/fields/
> >> > __init__.py", line 471, in to_python
> >> >     raise exceptions.ValidationError(self.error_messages['invalid'])
> >> > ValidationError: [u'This value must be an integer.']
>
> >> > Here is a sample from the YAML fixture file I'm attempting to use:
>
> >> > - model: players.player
> >> >   pk: 2
> >> >   fields:
> >> >     team: DEN
> >> >     first_name: Arron
> >> >     last_name: Afflalo
> >> >     age: 26
> >> >     pos:  SG
> >> >     gp: 25
> >> >     mp: 754
> >> >     fg: 98
> >> >     fga: 227
> >> >     ft: 62
> >> >     fta: 78
> >> >     three_pointers: 31
> >> >     threes_attempted: 81
> >> >     orb: 15
> >> >     drb: 51
> >> >     ast: 39
> >> >     stl: 15
> >> >     blk: 6
> >> >     tov: 33
> >> >     pf: 55
> >> >     pts: 289
>
> >> > Isn't what I have there mostly integers?  I've already checked my
> >> > models.py file to make sure I didn't accidentally use an
> >> > "IntegerField" for "team", "first_name", "last_name", or "pos."  Do I
> >> > need to include some other kind of formatting information in my YAML
> >> > file to indicate that the numbers are integers?
>
> >> > thanks,
> >> > Guillaume
>
> >> > --
> >> > You received this message because you are subscribed to the Google
> >> > Groups
> >> > "Django users" group.
> >> > To post to this group, send email to [hidden email].
> >> > To unsubscribe from this group, send email to
> >> > [hidden email].
> >> > For more options, visit this group at
> >> >http://groups.google.com/group/django-users?hl=en.
>
> > --
> > You received this message because you are subscribed to the Google Groups
> > "Django users" group.
> > To post to this group, send email to [hidden email].
> > To unsubscribe from this group, send email to
> > [hidden email].
> > For more options, visit this group at
> >http://groups.google.com/group/django-users?hl=en.

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.

Reply | Threaded
Open this post in threaded view
|

Re: Problem loading integer data into database using fixture

Gchorn
I figured it out the answer to my original question.  One of the
fields was a ForeignKey field and I was just giving it the string
representation of the foreignkey object, rather than its primary key
(which is an integer and not a string).

Thanks for the help though, Bill!

cheers,
Guillaume

On Feb 17, 2:18 pm, Gchorn <[hidden email]> wrote:

> Unfortunately, that doesn't seem to be the case.  I have the database
> user and password in my settings.py file, but I still have to do a
> "sudo su postgres" to switch to postgres in the terminal before I can
> access my PostgreSQL database through the Django database API.
> Otherwise when I try to access it through my normal username
> "guillaume", I get:
>
> Traceback (most recent call last):
>   File "<console>", line 1, in <module>
>   File "/usr/local/lib/python2.7/dist-packages/django/db/models/
> query.py", line 69, in __repr__
>     data = list(self[:REPR_OUTPUT_SIZE + 1])
>   File "/usr/local/lib/python2.7/dist-packages/django/db/models/
> query.py", line 84, in __len__
>     self._result_cache.extend(self._iter)
>   File "/usr/local/lib/python2.7/dist-packages/django/db/models/
> query.py", line 273, in iterator
>     for row in compiler.results_iter():
>   File "/usr/local/lib/python2.7/dist-packages/django/db/models/sql/
> compiler.py", line 680, in results_iter
>     for rows in self.execute_sql(MULTI):
>   File "/usr/local/lib/python2.7/dist-packages/django/db/models/sql/
> compiler.py", line 734, in execute_sql
>     cursor = self.connection.cursor()
>   File "/usr/local/lib/python2.7/dist-packages/django/db/backends/
> __init__.py", line 250, in cursor
>     cursor = self.make_debug_cursor(self._cursor())
>   File "/usr/local/lib/python2.7/dist-packages/django/db/backends/
> postgresql_psycopg2/base.py", line 140, in _cursor
>     self.connection = Database.connect(**conn_params)
> OperationalError: FATAL:  Peer authentication failed for user
> "postgres"
>
> However, I found a way around the "out" file issue I mentioned
> earlier; I did a search for my yaml file and changed the write
> permission on it to all users, so I was then able to access it while
> in the API under the postgres username.  After I did so and attempted
> to write serialized data to it, I got the following error:
>
> >>> yaml_serializer.serialize(Player.objects.all(),stream=out)
>
> Traceback (most recent call last):
>   File "<console>", line 1, in <module>
>   File "/usr/local/lib/python2.7/dist-packages/django/core/serializers/
> base.py", line 55, in serialize
>     return self.getvalue()
>   File "/usr/local/lib/python2.7/dist-packages/django/core/serializers/
> pyyaml.py", line 44, in getvalue
>     return self.stream.getvalue()
> AttributeError: 'file' object has no attribute 'getvalue'
>
> It does seem to have written to the yaml output file.  In that, I got:
>
> - fields: {age: 25, ast: 1, blk: 2, drb: 17, fg: 7, fga: 16,
> first_name: Jeff, ft: 7,
>     fta: 12, gp: 8, last_name: Adrien, mp: 63, orb: 5, pf: 13, pos:
> SF, pts: 21, stl: 0,
>     team: 1, three_pointers: 0, threes_attempted: 0, tov: 2}
>   model: players.player
>   pk: 1
>
> But now I'm wondering what the error the API kicked was about...anyone
> know?
>
> thanks,
> Guillaume
>
> On Feb 17, 7:50 am, Bill Freeman <[hidden email]> wrote:
>
>
>
>
>
>
>
> > The database user and *nix user are (typically) unrelated.  The
> > database user is specified in settings.py and there is also a password
> > if necessary.  Since one usually communicates with database servers
> > using network connections (even on the same box), it doesn't really
> > know what user a connection came from.
>
> > Unless you are using sqlite3 as your database, in which case you just
> > need to copy and change the ownership of the database file (may
> > require sudo).
>
> > On 2/16/12, Gchorn <[hidden email]> wrote:
>
> > > Thanks very much for the reply.  I went ahead and created a model
> > > instance using the API, and then tried to get a yaml dump of this.
> > > However, I'm running into another (newb) problem.  The database I'm
> > > using is under a different username (I'm doing all of this in Ubuntu
> > > Linux 11.10), which I understood to be good practice.  However, when I
> > > do a python manage.py shell I have to already be in one user name or
> > > another.  The database username gives me access to the database
> > > through the API, but then I can't create a data dump file because I
> > > don't have file write access under that username.  I can't be under
> > > both usernames at once can I?  Do I just need to give write-access to
> > > the database username as well?  If so how do I do that (I know we're
> > > veering away from Django here, sorry)?
>
> > > On Feb 17, 1:13 am, Bill Freeman <[hidden email]> wrote:
> > >> Well, I don't know yaml, but if you are in a place where you don't
> > >> have to quote:
>
> > >>    Arron
>
> > >> then I'd expect everything to be strings.
>
> > >> Is there a yaml.dump that you can apply to a model with strings and
> > >> integers to see how it thinks they are distinguished?
>
> > >> On 2/16/12, Gchorn <[hidden email]> wrote:
>
> > >> > Hello All,
>
> > >> > I'm attempting to provide initial data for my database using a fixture
> > >> > file (like this:
> > >> >https://docs.djangoproject.com/en/1.3/howto/initial-data/#providing-i...),
> > >> > but I'm running into the following error:
>
> > >> > Problem installing fixture '/home/guillaume/NBA/players/fixtures/
> > >> > player_data.yaml': Traceback (most recent call last):
> > >> >   File "/usr/local/lib/python2.7/dist-packages/django/core/management/
> > >> > commands/loaddata.py", line 169, in handle
> > >> >     for obj in objects:
> > >> >   File "/usr/local/lib/python2.7/dist-packages/django/core/serializers/
> > >> > pyyaml.py", line 54, in Deserializer
> > >> >     for obj in PythonDeserializer(yaml.load(stream), **options):
> > >> >   File "/usr/local/lib/python2.7/dist-packages/django/core/serializers/
> > >> > python.py", line 122, in Deserializer
> > >> >     data[field.attname] =
> > >> > field.rel.to._meta.get_field(field.rel.field_name).to_python(field_value)
> > >> >   File "/usr/local/lib/python2.7/dist-packages/django/db/models/fields/
> > >> > __init__.py", line 471, in to_python
> > >> >     raise exceptions.ValidationError(self.error_messages['invalid'])
> > >> > ValidationError: [u'This value must be an integer.']
>
> > >> > Here is a sample from the YAML fixture file I'm attempting to use:
>
> > >> > - model: players.player
> > >> >   pk: 2
> > >> >   fields:
> > >> >     team: DEN
> > >> >     first_name: Arron
> > >> >     last_name: Afflalo
> > >> >     age: 26
> > >> >     pos:  SG
> > >> >     gp: 25
> > >> >     mp: 754
> > >> >     fg: 98
> > >> >     fga: 227
> > >> >     ft: 62
> > >> >     fta: 78
> > >> >     three_pointers: 31
> > >> >     threes_attempted: 81
> > >> >     orb: 15
> > >> >     drb: 51
> > >> >     ast: 39
> > >> >     stl: 15
> > >> >     blk: 6
> > >> >     tov: 33
> > >> >     pf: 55
> > >> >     pts: 289
>
> > >> > Isn't what I have there mostly integers?  I've already checked my
> > >> > models.py file to make sure I didn't accidentally use an
> > >> > "IntegerField" for "team", "first_name", "last_name", or "pos."  Do I
> > >> > need to include some other kind of formatting information in my YAML
> > >> > file to indicate that the numbers are integers?
>
> > >> > thanks,
> > >> > Guillaume
>
> > >> > --
> > >> > You received this message because you are subscribed to the Google
> > >> > Groups
> > >> > "Django users" group.
> > >> > To post to this group, send email to [hidden email].
> > >> > To unsubscribe from this group, send email to
> > >> > [hidden email].
> > >> > For more options, visit this group at
> > >> >http://groups.google.com/group/django-users?hl=en.
>
> > > --
> > > You received this message because you are subscribed to the Google Groups
> > > "Django users" group.
> > > To post to this group, send email to [hidden email].
> > > To unsubscribe from this group, send email to
> > > [hidden email].
> > > For more options, visit this group at
> > >http://groups.google.com/group/django-users?hl=en.

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.

Reply | Threaded
Open this post in threaded view
|

Re: Problem loading integer data into database using fixture

Stacia Blackburn
In reply to this post by Gchorn
On Thu, 16 Feb 2012 22:18:03 -0800 (PST)
Gchorn <[hidden email]> wrote:

> Unfortunately, that doesn't seem to be the case.  I have the database
> user and password in my settings.py file, but I still have to do a
> "sudo su postgres" to switch to postgres in the terminal before I can
> access my PostgreSQL database through the Django database API.
> Otherwise when I try to access it through my normal username
> "guillaume", I get: (…)

I think this is due to the following. Fair warning: I'm no expert on
PostgreSQL authentication details, so take this info with a grain of
salt.

When HOST in DATABASES is blank, Postgres does local authentication,
ident-based, IIRC, ie. it connects to the database with your current
Unix user name. Try changing HOST to '127.0.0.1'. Alternatively, you
can leave HOST as is (blank), and create your own Postgres user with
/usr/bin/createuser; same name as your Unix user.

Best wishes,
Sebastian.

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.

Reply | Threaded
Open this post in threaded view
|

Re: Problem loading integer data into database using fixture

Bill Freeman-3
Also, see pg_hba.conf in the postgres documentation.  There can be
rules as to who can connect at all, let alone who needs a password.


On 2/17/12, Sebastian Goll <[hidden email]> wrote:

> On Thu, 16 Feb 2012 22:18:03 -0800 (PST)
> Gchorn <[hidden email]> wrote:
>
>> Unfortunately, that doesn't seem to be the case.  I have the database
>> user and password in my settings.py file, but I still have to do a
>> "sudo su postgres" to switch to postgres in the terminal before I can
>> access my PostgreSQL database through the Django database API.
>> Otherwise when I try to access it through my normal username
>> "guillaume", I get: (…)
>
> I think this is due to the following. Fair warning: I'm no expert on
> PostgreSQL authentication details, so take this info with a grain of
> salt.
>
> When HOST in DATABASES is blank, Postgres does local authentication,
> ident-based, IIRC, ie. it connects to the database with your current
> Unix user name. Try changing HOST to '127.0.0.1'. Alternatively, you
> can leave HOST as is (blank), and create your own Postgres user with
> /usr/bin/createuser; same name as your Unix user.
>
> Best wishes,
> Sebastian.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To post to this group, send email to [hidden email].
> To unsubscribe from this group, send email to
> [hidden email].
> For more options, visit this group at
> http://groups.google.com/group/django-users?hl=en.
>
>

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.