Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

adding models for schema generate

  • Loading branch information...
commit 62dee78ca5ab69356a026d89e025c0b2d762886b 1 parent 5e0e850
@dereuromark dereuromark authored
View
10 lib/Cake/Console/Command/SchemaShell.php
@@ -127,7 +127,9 @@ public function generate() {
$this->out(__d('cake_console', 'Generating Schema...'));
$options = array();
if ($this->params['force']) {
- $options = array('models' => false);
+ $options['models'] = false;
+ } elseif (!empty($this->params['models'])) {
+ $options['models'] = String::tokenize($this->params['models']);
}
$snapshot = false;
@@ -464,6 +466,10 @@ public function getOptionParser() {
'short' => 's',
'help' => __d('cake_console', 'Snapshot number to use/make.')
);
+ $models = array(
+ 'short' => 'm',
+ 'help' => __d('cake_console', 'Specify models as comma separated list.'),
+ );
$dry = array(
'help' => __d('cake_console', 'Perform a dry run on create and update commands. Queries will be output instead of run.'),
'boolean' => true
@@ -489,7 +495,7 @@ public function getOptionParser() {
))->addSubcommand('generate', array(
'help' => __d('cake_console', 'Reads from --connection and writes to --path. Generate snapshots with -s'),
'parser' => array(
- 'options' => compact('plugin', 'path', 'file', 'name', 'connection', 'snapshot', 'force'),
+ 'options' => compact('plugin', 'path', 'file', 'name', 'connection', 'snapshot', 'force', 'models'),
'arguments' => array(
'snapshot' => array('help' => __d('cake_console', 'Generate a snapshot.'))
)
View
35 lib/Cake/Test/Case/Console/Command/SchemaShellTest.php
@@ -363,6 +363,41 @@ public function testGenerateWithPlugins() {
}
/**
+ * test generate with specific models
+ *
+ * @return void
+ */
+ public function testGenerateModels() {
+ App::build(array(
+ 'Plugin' => array(CAKE . 'Test' . DS . 'test_app' . DS . 'Plugin' . DS)
+ ), App::RESET);
+ CakePlugin::load('TestPlugin');
+
+ $this->db->cacheSources = false;
+ $this->Shell->params = array(
+ 'plugin' => 'TestPlugin',
+ 'connection' => 'test',
+ 'models' => 'TestPluginComment',
+ 'force' => false,
+ 'overwrite' => true
+ );
+ $this->Shell->startup();
+ $this->Shell->Schema->path = TMP . 'tests' . DS;
+
+ $this->Shell->generate();
+ $this->file = new File(TMP . 'tests' . DS . 'schema.php');
+ $contents = $this->file->read();
+
+ $this->assertRegExp('/class TestPluginSchema/', $contents);
+ $this->assertRegExp('/public \$test_plugin_comments/', $contents);
+ $this->assertNotRegExp('/public \$authors/', $contents);
+ $this->assertNotRegExp('/public \$auth_users/', $contents);
+ $this->assertNotRegExp('/public \$posts/', $contents);
+ CakePlugin::unload();
+ }
+
+
+/**
* Test schema run create with no table args.
*
* @return void
Please sign in to comment.
Something went wrong with that request. Please try again.