Details
-
Type:
Bug
-
Status:
Open
-
Priority:
Major
-
Resolution: Unresolved
-
Affects Version/s: 1.2.0
-
Fix Version/s: None
-
Component/s: Record
-
Labels:None
-
Environment:Mac OS 10.5, Zend Server CE, PHP 5.3
Symfony 1.4
Description
I have the model class as follows:
schema.yml
options:
collate: utf8_unicode_ci
charset: utf8
type: INNODB
Identity:
tableName: Identity
columns:
id:
type: integer(4)
fixed: false
unsigned: false
primary: true
autoincrement: true
username:
type: string(50)
fixed: false
unsigned: false
primary: false
notnull: true
autoincrement: false
email:
type: string(50)
fixed: false
unsigned: false
primary: false
notnull: true
autoincrement: false
password:
type: string(100)
fixed: false
unsigned: false
primary: false
notnull: true
autoincrement: false
created_at:
name: created_at
type: timestamp
# default: CURRENT_TIMESTAMP
fixed: false
unsigned: false
primary: false
notnull: true
autoincrement: false
updated_at:
name: updated_at
type: timestamp
fixed: false
unsigned: false
primary: false
default: null
notnull: false
autoincrement: false
relations:
Roles:
class: Role
local: id
foreign: ident_id
type: many
Token:
local: id
foreign: entity_id
type: many
Devices:
class: Device
local: id
foreign: account_id
type: many
Rides:
class: Ride
local: id
foreign: account_id
type: many
OwnGroups:
class: CoachGroup
local: id
foreign: owner_id
type: many
GroupMemberships:
class: GroupMembership
local: id
foreign: ident_id
type: many
actAs:
Timestampable:
created:
name: created_at
type: timestamp
expression: NOW()
update:
onInsert: false
Role:
tableName: Role
columns:
identId:
name: ident_id
type: integer(4)
fixed: false
unsigned: false
primary: true
autoincrement: false
role:
type: string(50)
fixed: false
unsigned: false
primary: true
autoincrement: false
relations:
Identity:
onDelete: CASCADE
onUpdate: CASCADE
local: ident_id
foreign: id
foreignAlias: Roles
Token:
tableName: Token
columns:
entity_id:
name: entity_id
type: integer(4)
fixed: false
unsigned: false
notnull: true
primary: false
autoincrement: false
token:
name: token
type: string(50)
fixed: true
unsigned: false
primary: true
default: ''
notnull: true
autoincrement: false
type:
type: enum(50)
fixed: false
unsigned: false
values:
- EMAIL_VERIFICATION
- PASS_RESET
primary: false
default: EMAIL_VERIFICATION
notnull: true
autoincrement: false
created_at:
type: timestamp(25)
fixed: false
unsigned: false
primary: false
notnull: true
autoincrement: false
expires_at:
type: timestamp(25)
fixed: false
unsigned: false
primary: false
notnull: false
autoincrement: false
indexes:
entity:
fields: [entity_id]
relations:
Identity:
onDelete: CASCADE
onUpdate: CASCADE
local: entity_id
foreign: id
type: one
actAs:
Timestampable:
created:
name: created_at
type: timestamp
updated:
disabled: true
and my unit test for the model:
TokenModelTest.php
$t = new lime_test(3); $t->diag("=== Token model test ==="); $t->info('Token creation =>'); $token = new Token(); $token->setEntityId(1); $token->generateUniqueToken(); $t->info('Set valid token type...'); $token->setType(Token::TYPE_EMAIL_VERIFICATION); try{ $t->info('Saving the token...'); $token->save(); $t->pass('Token was saved successfully...'); } catch(Exception $e){ $t->is(($e instanceof Exception), true, $e->getMessage()); } $t->isnt($token->getCreatedAt(), null, ' Creation datetime is set to '.$token->getCreatedAt().'...'); $t->info('Get this token from DB...'); $tokenFromDb = Doctrine::getTable('Token')->findOneByToken($token->getToken()); $t->info('Compare the two...'); $t->is($tokenFromDb->getEntityId(), $token->getEntityId(), 'Entity ID...'); $t->is($tokenFromDb->getToken(), $token->getToken(), 'Token string...'); $t->is($tokenFromDb->getType(), $token->getType(), 'Token string...'); $t->is($tokenFromDb->getCreatedAt(), $token->getCreatedAt(), 'Token creation date...'); $t->is($tokenFromDb->getExpiresAt(), $token->getExpiresAt(), 'Token expration date...'); $t->is($tokenFromDb->getExpiresAt(), null, 'Token expration date is null...'); $t->info('Delete token...'); $t->is($token->delete(), true, 'Successful deletion...');
On test execution on this line:
$tokenFromDb = Doctrine::getTable('Token')->findOneByToken($token->getToken());
I'm getting a fatal error:
ERROR
# === Token model test ===
> Token creation =>
> Set valid token type...
> Saving the token...
ok 1 - Token was saved successfully...
ok 2 - Creation datetime is set to 2009-12-04 01:13:31...
> Get this token from DB...
PHP Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 261900 bytes) in /ApacheWebServer/htdocs/Clients/enki/enkiweb/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Core.php on line 550
Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 261900 bytes) in /ApacheWebServer/htdocs/Clients/enki/enkiweb/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Core.php on line 550
Activity
This list may be incomplete, as errors occurred whilst retrieving source from linked applications:
- Request to http://www.doctrine-project.org/fisheye/ failed: Error in remote call to 'FishEye 0 (http://www.doctrine-project.org/fisheye/)' (http://www.doctrine-project.org/fisheye) [AbstractRestCommand{path='/rest-service-fe/search-v1/crossRepositoryQuery', params={query=DC-326, expand=changesets[-21:-1].revisions[0:29],reviews}, methodType=GET}] : Received status code 503 (Service Temporarily Unavailable)
Anymore information? Not much I can really do right now. If you have some more information to help I can look at the problem again. A Doctrine test case would be helpful.