Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Merge pull request #70 from asorokin-sugar/ABS-1047
ABS-1047: added numbers output for fields of type autoincrement for c…
  • Loading branch information
Igor Zhutaiev committed Aug 2, 2016
2 parents 752279d + 2a24b9e commit 102b13d
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 7 deletions.
8 changes: 7 additions & 1 deletion README.md
Expand Up @@ -90,9 +90,15 @@ Configuration

Usage
-----
**NOTE** **Usage of Tidbit could affect your _data_ in DB**
**NOTES:**

* Usage of Tidbit could affect your _data_ in DB
Please make sure you have a backup, before running data Generation commands

* In case of generation csv (--storage csv)
We suppose what csv-dump will be used on empty DB, so for speed up, we'll generate
values (integer starting with 1) for autoincrement-type fields.

Tidbit uses a command line interface. To run it from the Tidbit directory:

$ php -f install_cli.php
Expand Down
2 changes: 2 additions & 0 deletions src/DataTool.php
Expand Up @@ -325,6 +325,8 @@ public function handleType($typeData, $type, $field, $seed, $resetStatic = false
|| $this->storageType == Factory::OUTPUT_TYPE_DB2
) {
return strtoupper($this->table_name . '_' . $field . '_seq.nextval');
} elseif ($this->storageType == Factory::OUTPUT_TYPE_CSV) {
return $this->count + 1;
} else {
return '';
}
Expand Down
19 changes: 18 additions & 1 deletion src/Generator/Activity/Entity.php
Expand Up @@ -43,6 +43,9 @@ class Entity
{
const USERS_MODULE_NAME = 'Users';

/** @var SugarBean */
protected static $activityBean;

/**
* Current DataTool object with record info
*
Expand Down Expand Up @@ -121,12 +124,26 @@ public function getRelationshipsData()
return array($rel1, $rel2);
}

/**
* Lazy activity bean creator
*
* @return SugarBean
*/
protected static function getActivityBean()
{
if (!self::$activityBean) {
self::$activityBean = \BeanFactory::getBean('Activities');
}

return self::$activityBean;
}

/**
* Initialize activity fields.
*/
protected function initializeFields()
{
$activityBean = \BeanFactory::getBean('Activities');
$activityBean = self::getActivityBean();
foreach ($activityBean->field_defs as $field => $data) {
if (empty($data['source'])) {
$this->activityFields[$field] = null;
Expand Down
10 changes: 5 additions & 5 deletions src/StorageAdapter/Storage/Csv.php
Expand Up @@ -52,7 +52,6 @@ class Csv extends Common
*/
public function save($tableName, array $installData)
{

if (!$tableName || !$installData) {
throw new Exception("Csv adapter error: wrong data to save");
}
Expand All @@ -61,15 +60,16 @@ public function save($tableName, array $installData)
$needHeader = !file_exists($fileName);
$storeFile = fopen($fileName, 'a');

$dataToWrite = '';
if ($needHeader) {
$head = $this->prepareCsvString(array_keys($installData[0]), "'");
fwrite($storeFile, $head);
$dataToWrite = $this->prepareCsvString(array_keys($installData[0]), "'");
}

foreach ($installData as $data) {
fwrite($storeFile, $this->prepareCsvString($data));
$dataToWrite .= $this->prepareCsvString($data);
}

fwrite($storeFile, $dataToWrite);
fclose($storeFile);
}

Expand All @@ -83,7 +83,7 @@ public function save($tableName, array $installData)
protected function prepareCsvString(array $values, $quote = '')
{
foreach ($values as $k => $v) {
if (strtolower($v) == 'null') {
if ($v === 'null' || $v === 'NULL') {
$values[$k] = '';
} else {
$values[$k] = $quote . trim($v) . $quote;
Expand Down

0 comments on commit 102b13d

Please sign in to comment.