Update module to run alter command Planned maintenance scheduled April 23, 2019 at 00:00UTC (8:00pm US/Eastern) Announcing the arrival of Valued Associate #679: Cesar Manara Unicorn Meta Zoo #1: Why another podcast?Update Admin module to add fields problemModule upgrade script is not being runUpdate customer attributes of old moduleHow to update database tables of already installed custom moduleAdd subscriber status to flat order gridUpdate custom module database - 7 shops same theme, plugins ect but fail at one shopSQL install script doesn't run in magento2UpgradeSchema for category attribute M2How to update datatype for column in custom module?Insert multiple records to multiple custom tables through install script in magento2
How could we fake a moon landing now?
How does the secondary effect of the Heat Metal spell interact with a creature resistant/immune to fire damage?
What initially awakened the Balrog?
What is the difference between globalisation and imperialism?
Can the Great Weapon Master feat's damage bonus and accuracy penalty apply to attacks from the Spiritual Weapon spell?
ArcGIS Pro Python arcpy.CreatePersonalGDB_management
How to write the following sign?
Is there a kind of relay that only consumes power when switching?
What is this clumpy 20-30cm high yellow-flowered plant?
How to compare two different files line by line in unix?
Chinese Seal on silk painting - what does it mean?
Why weren't discrete x86 CPUs ever used in game hardware?
SF book about people trapped in a series of worlds they imagine
How do I change colors in Zim (wiki editor) running on Kubuntu 18.10?
Did Deadpool rescue all of the X-Force?
I am having problem understanding the behavior of below code in JavaScript
How fail-safe is nr as stop bytes?
What is "gratricide"?
Amount of permutations on an NxNxN Rubik's Cube
How to react to hostile behavior from a senior developer?
Has negative voting ever been officially implemented in elections, or seriously proposed, or even studied?
Why is it faster to reheat something than it is to cook it?
What order were files/directories outputted in dir?
When a candle burns, why does the top of wick glow if bottom of flame is hottest?
Update module to run alter command
Planned maintenance scheduled April 23, 2019 at 00:00UTC (8:00pm US/Eastern)
Announcing the arrival of Valued Associate #679: Cesar Manara
Unicorn Meta Zoo #1: Why another podcast?Update Admin module to add fields problemModule upgrade script is not being runUpdate customer attributes of old moduleHow to update database tables of already installed custom moduleAdd subscriber status to flat order gridUpdate custom module database - 7 shops same theme, plugins ect but fail at one shopSQL install script doesn't run in magento2UpgradeSchema for category attribute M2How to update datatype for column in custom module?Insert multiple records to multiple custom tables through install script in magento2
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
I have created a module Vendor/Module
I have added sql setup script in it. The module is working fine.
Now I need to alter table and add come more columns in the table. To do this I need to add new sql setup script and Update my module version.
Can anyone help me out on this? How can I do this?
magento2 module setup-script
add a comment |
I have created a module Vendor/Module
I have added sql setup script in it. The module is working fine.
Now I need to alter table and add come more columns in the table. To do this I need to add new sql setup script and Update my module version.
Can anyone help me out on this? How can I do this?
magento2 module setup-script
add a comment |
I have created a module Vendor/Module
I have added sql setup script in it. The module is working fine.
Now I need to alter table and add come more columns in the table. To do this I need to add new sql setup script and Update my module version.
Can anyone help me out on this? How can I do this?
magento2 module setup-script
I have created a module Vendor/Module
I have added sql setup script in it. The module is working fine.
Now I need to alter table and add come more columns in the table. To do this I need to add new sql setup script and Update my module version.
Can anyone help me out on this? How can I do this?
magento2 module setup-script
magento2 module setup-script
asked 1 hour ago
Muhammad AnasMuhammad Anas
6861320
6861320
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
First Update your moudule.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd">
<module name="Your_Module" setup_version="1.0.1" schema_version="1.0.2">
</module>
</config>
You can use UpgradeSchema.php
Create UpgradeSchema.php
in Setup/UpgradeSchema.php
<?php
namespace YourModuleSetup;
use MagentoFrameworkSetupModuleContextInterface;
use MagentoFrameworkSetupSchemaSetupInterface;
use MagentoFrameworkSetupUpgradeSchemaInterface;
class UpgradeSchema implements UpgradeSchemaInterface
public function upgrade(SchemaSetupInterface $setup, ModuleContextInterface $context)
$installer = $setup;
$installer->startSetup();
if(version_compare($context->getVersion(), '1.0.1', '<'))
$table = $installer->getTable('your_table');
//Your alteration logic
$columns = [
'your_column' =>
[
'type' => MagentoFrameworkDBDdlTable::TYPE_TEXT,
'nullable' => false,
'length' => 512,
'default' => null,
'comment' => 'You Column Comment',
],
];
$connection = $installer->getConnection();
foreach ($columns as $name => $definition)
$connection->addColumn($table, $name, $definition);
$installer->endSetup();
Thanks. Your code is easier to understand. +1 for that
– Muhammad Anas
50 mins ago
add a comment |
Create file name called UpgradeSchema.php from your module Setup folders
Ex: app/code/Vendor/Ecommerce/Setup/UpgradeSchema.php
Here we are going to create column called vendor_isallowstatus
Column name called : vendor_isallowstatus
Table name : vendor_ecommerce
adde below code into your file.
Ex:
if (version_compare($context->getVersion(), ‘2.0.5’) < 0) //My new upgrade file version is 2.0.5 incase if 2.0.6 then set 2.0.6
Step:1
<?php
namespace VendorEcommerceSetup;
use MagentoFrameworkSetupUpgradeSchemaInterface;
use MagentoFrameworkSetupModuleContextInterface;
use MagentoFrameworkSetupSchemaSetupInterface;
class UpgradeSchema implements UpgradeSchemaInterface
public function upgrade(SchemaSetupInterface $setup, ModuleContextInterface $context)
if (version_compare($context->getVersion(), '2.0.1') < 0)
$setup->startSetup();
$setup->getConnection()->addColumn(
$setup->getTable('vendor_ecommerce'),
'vendor_isallowstatus',
['type' => MagentoFrameworkDBDdlTable::TYPE_INT,
'length' => '11',
'nullable' => false,
'default' => '0',
'comment' => 'Vendor Is Allow Status']);
$setup->endSetup();
Step:2
app/code/Vendor/Ecommerce/etc/module.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="Vendor_Ecommerce" setup_version="2.0.5">
<sequence><module name="Vendor_Ecommerce"/></sequence>
</module></config>
Step:3
After saving files, you need to run php bin/magento setup:upgrade
. Now check your database and you will be able to find a new custom table and new column in 'vendor_ecommerce' table.
You code is good enough to apply, but other answer is more understandable. +1 for your effort and help. Thanks mate :)
– Muhammad Anas
50 mins ago
add a comment |
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "479"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f270732%2fupdate-module-to-run-alter-command%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
First Update your moudule.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd">
<module name="Your_Module" setup_version="1.0.1" schema_version="1.0.2">
</module>
</config>
You can use UpgradeSchema.php
Create UpgradeSchema.php
in Setup/UpgradeSchema.php
<?php
namespace YourModuleSetup;
use MagentoFrameworkSetupModuleContextInterface;
use MagentoFrameworkSetupSchemaSetupInterface;
use MagentoFrameworkSetupUpgradeSchemaInterface;
class UpgradeSchema implements UpgradeSchemaInterface
public function upgrade(SchemaSetupInterface $setup, ModuleContextInterface $context)
$installer = $setup;
$installer->startSetup();
if(version_compare($context->getVersion(), '1.0.1', '<'))
$table = $installer->getTable('your_table');
//Your alteration logic
$columns = [
'your_column' =>
[
'type' => MagentoFrameworkDBDdlTable::TYPE_TEXT,
'nullable' => false,
'length' => 512,
'default' => null,
'comment' => 'You Column Comment',
],
];
$connection = $installer->getConnection();
foreach ($columns as $name => $definition)
$connection->addColumn($table, $name, $definition);
$installer->endSetup();
Thanks. Your code is easier to understand. +1 for that
– Muhammad Anas
50 mins ago
add a comment |
First Update your moudule.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd">
<module name="Your_Module" setup_version="1.0.1" schema_version="1.0.2">
</module>
</config>
You can use UpgradeSchema.php
Create UpgradeSchema.php
in Setup/UpgradeSchema.php
<?php
namespace YourModuleSetup;
use MagentoFrameworkSetupModuleContextInterface;
use MagentoFrameworkSetupSchemaSetupInterface;
use MagentoFrameworkSetupUpgradeSchemaInterface;
class UpgradeSchema implements UpgradeSchemaInterface
public function upgrade(SchemaSetupInterface $setup, ModuleContextInterface $context)
$installer = $setup;
$installer->startSetup();
if(version_compare($context->getVersion(), '1.0.1', '<'))
$table = $installer->getTable('your_table');
//Your alteration logic
$columns = [
'your_column' =>
[
'type' => MagentoFrameworkDBDdlTable::TYPE_TEXT,
'nullable' => false,
'length' => 512,
'default' => null,
'comment' => 'You Column Comment',
],
];
$connection = $installer->getConnection();
foreach ($columns as $name => $definition)
$connection->addColumn($table, $name, $definition);
$installer->endSetup();
Thanks. Your code is easier to understand. +1 for that
– Muhammad Anas
50 mins ago
add a comment |
First Update your moudule.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd">
<module name="Your_Module" setup_version="1.0.1" schema_version="1.0.2">
</module>
</config>
You can use UpgradeSchema.php
Create UpgradeSchema.php
in Setup/UpgradeSchema.php
<?php
namespace YourModuleSetup;
use MagentoFrameworkSetupModuleContextInterface;
use MagentoFrameworkSetupSchemaSetupInterface;
use MagentoFrameworkSetupUpgradeSchemaInterface;
class UpgradeSchema implements UpgradeSchemaInterface
public function upgrade(SchemaSetupInterface $setup, ModuleContextInterface $context)
$installer = $setup;
$installer->startSetup();
if(version_compare($context->getVersion(), '1.0.1', '<'))
$table = $installer->getTable('your_table');
//Your alteration logic
$columns = [
'your_column' =>
[
'type' => MagentoFrameworkDBDdlTable::TYPE_TEXT,
'nullable' => false,
'length' => 512,
'default' => null,
'comment' => 'You Column Comment',
],
];
$connection = $installer->getConnection();
foreach ($columns as $name => $definition)
$connection->addColumn($table, $name, $definition);
$installer->endSetup();
First Update your moudule.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd">
<module name="Your_Module" setup_version="1.0.1" schema_version="1.0.2">
</module>
</config>
You can use UpgradeSchema.php
Create UpgradeSchema.php
in Setup/UpgradeSchema.php
<?php
namespace YourModuleSetup;
use MagentoFrameworkSetupModuleContextInterface;
use MagentoFrameworkSetupSchemaSetupInterface;
use MagentoFrameworkSetupUpgradeSchemaInterface;
class UpgradeSchema implements UpgradeSchemaInterface
public function upgrade(SchemaSetupInterface $setup, ModuleContextInterface $context)
$installer = $setup;
$installer->startSetup();
if(version_compare($context->getVersion(), '1.0.1', '<'))
$table = $installer->getTable('your_table');
//Your alteration logic
$columns = [
'your_column' =>
[
'type' => MagentoFrameworkDBDdlTable::TYPE_TEXT,
'nullable' => false,
'length' => 512,
'default' => null,
'comment' => 'You Column Comment',
],
];
$connection = $installer->getConnection();
foreach ($columns as $name => $definition)
$connection->addColumn($table, $name, $definition);
$installer->endSetup();
answered 1 hour ago
RizwanRizwan
947526
947526
Thanks. Your code is easier to understand. +1 for that
– Muhammad Anas
50 mins ago
add a comment |
Thanks. Your code is easier to understand. +1 for that
– Muhammad Anas
50 mins ago
Thanks. Your code is easier to understand. +1 for that
– Muhammad Anas
50 mins ago
Thanks. Your code is easier to understand. +1 for that
– Muhammad Anas
50 mins ago
add a comment |
Create file name called UpgradeSchema.php from your module Setup folders
Ex: app/code/Vendor/Ecommerce/Setup/UpgradeSchema.php
Here we are going to create column called vendor_isallowstatus
Column name called : vendor_isallowstatus
Table name : vendor_ecommerce
adde below code into your file.
Ex:
if (version_compare($context->getVersion(), ‘2.0.5’) < 0) //My new upgrade file version is 2.0.5 incase if 2.0.6 then set 2.0.6
Step:1
<?php
namespace VendorEcommerceSetup;
use MagentoFrameworkSetupUpgradeSchemaInterface;
use MagentoFrameworkSetupModuleContextInterface;
use MagentoFrameworkSetupSchemaSetupInterface;
class UpgradeSchema implements UpgradeSchemaInterface
public function upgrade(SchemaSetupInterface $setup, ModuleContextInterface $context)
if (version_compare($context->getVersion(), '2.0.1') < 0)
$setup->startSetup();
$setup->getConnection()->addColumn(
$setup->getTable('vendor_ecommerce'),
'vendor_isallowstatus',
['type' => MagentoFrameworkDBDdlTable::TYPE_INT,
'length' => '11',
'nullable' => false,
'default' => '0',
'comment' => 'Vendor Is Allow Status']);
$setup->endSetup();
Step:2
app/code/Vendor/Ecommerce/etc/module.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="Vendor_Ecommerce" setup_version="2.0.5">
<sequence><module name="Vendor_Ecommerce"/></sequence>
</module></config>
Step:3
After saving files, you need to run php bin/magento setup:upgrade
. Now check your database and you will be able to find a new custom table and new column in 'vendor_ecommerce' table.
You code is good enough to apply, but other answer is more understandable. +1 for your effort and help. Thanks mate :)
– Muhammad Anas
50 mins ago
add a comment |
Create file name called UpgradeSchema.php from your module Setup folders
Ex: app/code/Vendor/Ecommerce/Setup/UpgradeSchema.php
Here we are going to create column called vendor_isallowstatus
Column name called : vendor_isallowstatus
Table name : vendor_ecommerce
adde below code into your file.
Ex:
if (version_compare($context->getVersion(), ‘2.0.5’) < 0) //My new upgrade file version is 2.0.5 incase if 2.0.6 then set 2.0.6
Step:1
<?php
namespace VendorEcommerceSetup;
use MagentoFrameworkSetupUpgradeSchemaInterface;
use MagentoFrameworkSetupModuleContextInterface;
use MagentoFrameworkSetupSchemaSetupInterface;
class UpgradeSchema implements UpgradeSchemaInterface
public function upgrade(SchemaSetupInterface $setup, ModuleContextInterface $context)
if (version_compare($context->getVersion(), '2.0.1') < 0)
$setup->startSetup();
$setup->getConnection()->addColumn(
$setup->getTable('vendor_ecommerce'),
'vendor_isallowstatus',
['type' => MagentoFrameworkDBDdlTable::TYPE_INT,
'length' => '11',
'nullable' => false,
'default' => '0',
'comment' => 'Vendor Is Allow Status']);
$setup->endSetup();
Step:2
app/code/Vendor/Ecommerce/etc/module.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="Vendor_Ecommerce" setup_version="2.0.5">
<sequence><module name="Vendor_Ecommerce"/></sequence>
</module></config>
Step:3
After saving files, you need to run php bin/magento setup:upgrade
. Now check your database and you will be able to find a new custom table and new column in 'vendor_ecommerce' table.
You code is good enough to apply, but other answer is more understandable. +1 for your effort and help. Thanks mate :)
– Muhammad Anas
50 mins ago
add a comment |
Create file name called UpgradeSchema.php from your module Setup folders
Ex: app/code/Vendor/Ecommerce/Setup/UpgradeSchema.php
Here we are going to create column called vendor_isallowstatus
Column name called : vendor_isallowstatus
Table name : vendor_ecommerce
adde below code into your file.
Ex:
if (version_compare($context->getVersion(), ‘2.0.5’) < 0) //My new upgrade file version is 2.0.5 incase if 2.0.6 then set 2.0.6
Step:1
<?php
namespace VendorEcommerceSetup;
use MagentoFrameworkSetupUpgradeSchemaInterface;
use MagentoFrameworkSetupModuleContextInterface;
use MagentoFrameworkSetupSchemaSetupInterface;
class UpgradeSchema implements UpgradeSchemaInterface
public function upgrade(SchemaSetupInterface $setup, ModuleContextInterface $context)
if (version_compare($context->getVersion(), '2.0.1') < 0)
$setup->startSetup();
$setup->getConnection()->addColumn(
$setup->getTable('vendor_ecommerce'),
'vendor_isallowstatus',
['type' => MagentoFrameworkDBDdlTable::TYPE_INT,
'length' => '11',
'nullable' => false,
'default' => '0',
'comment' => 'Vendor Is Allow Status']);
$setup->endSetup();
Step:2
app/code/Vendor/Ecommerce/etc/module.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="Vendor_Ecommerce" setup_version="2.0.5">
<sequence><module name="Vendor_Ecommerce"/></sequence>
</module></config>
Step:3
After saving files, you need to run php bin/magento setup:upgrade
. Now check your database and you will be able to find a new custom table and new column in 'vendor_ecommerce' table.
Create file name called UpgradeSchema.php from your module Setup folders
Ex: app/code/Vendor/Ecommerce/Setup/UpgradeSchema.php
Here we are going to create column called vendor_isallowstatus
Column name called : vendor_isallowstatus
Table name : vendor_ecommerce
adde below code into your file.
Ex:
if (version_compare($context->getVersion(), ‘2.0.5’) < 0) //My new upgrade file version is 2.0.5 incase if 2.0.6 then set 2.0.6
Step:1
<?php
namespace VendorEcommerceSetup;
use MagentoFrameworkSetupUpgradeSchemaInterface;
use MagentoFrameworkSetupModuleContextInterface;
use MagentoFrameworkSetupSchemaSetupInterface;
class UpgradeSchema implements UpgradeSchemaInterface
public function upgrade(SchemaSetupInterface $setup, ModuleContextInterface $context)
if (version_compare($context->getVersion(), '2.0.1') < 0)
$setup->startSetup();
$setup->getConnection()->addColumn(
$setup->getTable('vendor_ecommerce'),
'vendor_isallowstatus',
['type' => MagentoFrameworkDBDdlTable::TYPE_INT,
'length' => '11',
'nullable' => false,
'default' => '0',
'comment' => 'Vendor Is Allow Status']);
$setup->endSetup();
Step:2
app/code/Vendor/Ecommerce/etc/module.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="Vendor_Ecommerce" setup_version="2.0.5">
<sequence><module name="Vendor_Ecommerce"/></sequence>
</module></config>
Step:3
After saving files, you need to run php bin/magento setup:upgrade
. Now check your database and you will be able to find a new custom table and new column in 'vendor_ecommerce' table.
answered 59 mins ago
Rakesh DongaRakesh Donga
2,664317
2,664317
You code is good enough to apply, but other answer is more understandable. +1 for your effort and help. Thanks mate :)
– Muhammad Anas
50 mins ago
add a comment |
You code is good enough to apply, but other answer is more understandable. +1 for your effort and help. Thanks mate :)
– Muhammad Anas
50 mins ago
You code is good enough to apply, but other answer is more understandable. +1 for your effort and help. Thanks mate :)
– Muhammad Anas
50 mins ago
You code is good enough to apply, but other answer is more understandable. +1 for your effort and help. Thanks mate :)
– Muhammad Anas
50 mins ago
add a comment |
Thanks for contributing an answer to Magento Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f270732%2fupdate-module-to-run-alter-command%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown