Skip to content

Commit

Permalink
DOCS Tidy up formatting / spelling in 4.6.0 changelog
Browse files Browse the repository at this point in the history
  • Loading branch information
Garion Herman committed Jun 25, 2020
1 parent 35d3191 commit 2931ce2
Showing 1 changed file with 24 additions and 23 deletions.
47 changes: 24 additions & 23 deletions docs/en/04_Changelogs/4.6.0.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,40 +9,38 @@
## MySQL tables are auto-converted from MyISAM to InnoDB {#myisam}

Beginning with [4.4.0](https://docs.silverstripe.org/en/4/changelogs/4.4.0/),
our minimum requirement for MySQL is 5.6 (since MySQL 5.5 end of life reached in December 2018).
Starting with MySQL 5.6, [InnoDB](https://dev.mysql.com/doc/refman/5.6/en/innodb-introduction.html)
is the new default storage engine,
replacing the older [MyISAM](https://dev.mysql.com/doc/refman/5.6/en/myisam-storage-engine.html) engine.
our minimum requirement for MySQL is 5.6 (since MySQL 5.5 end of life reached in
December 2018). Starting with MySQL 5.6, [InnoDB](https://dev.mysql.com/doc/refman/5.6/en/innodb-introduction.html)
is the new default storage engine, replacing the older [MyISAM](https://dev.mysql.com/doc/refman/5.6/en/myisam-storage-engine.html)
engine.

Silverstripe CMS already creates InnoDB tables by default,
mainly in order to benefit from their better support for database transactions.
Before MySQL 5.6, InnoDB didn't have a `FULLTEXT` search index,
requiring us to enforce the MyISAM engine when devs opted into this index type
in their particular setup. There are a few ways in which this opt-in can happen:
Silverstripe CMS already creates InnoDB tables by default, mainly in order to
benefit from their better support for database transactions. Before MySQL 5.6,
InnoDB didn't have a `FULLTEXT` search index, requiring us to enforce the MyISAM
engine when devs opted into this index type in their particular setup. There are
a few ways in which this opt-in can happen:

* Adding the [FulltextSearchable](https://github.com/silverstripe/silverstripe-framework/blob/4/src/ORM/Search/FulltextSearchable.php)
extension to a DataObject, as described in our
[search docs](https://docs.silverstripe.org/en/4/developer_guides/search/fulltextsearch/)
extension to a DataObject, as described in our [search docs](https://docs.silverstripe.org/en/4/developer_guides/search/fulltextsearch/)
* Defining `'type' => 'fulltext'` in `DataObject::$db` column definitions
* Implementing [DBIndexable](https://github.com/silverstripe/silverstripe-framework/blob/4/src/ORM/FieldType/DBIndexable.php)
on a custom `DBField` subclass.
* Setting `'ENGINE=MyISAM'` in `DataObject::$create_table_options`

This search index is not required to enable simple text search
in the "Pages" section of the CMS, or any ModelAdmin implementations.
We generally recommend to choose a more powerful
[search addon](https://addons.silverstripe.org/add-ons?search=fulltext&type=&sort=downloads)
This search index is not required to enable simple text search in the "Pages"
section of the CMS, or any ModelAdmin implementations. We generally recommend
choosing a more powerful [search addon](https://addons.silverstripe.org/add-ons?search=fulltext&type=&sort=downloads)
(e.g. based on Solr or ElasticSearch) for website frontend search use cases.

As of 4.6.0, a `dev/build` will automatically switch MyISAM tables to InnoDB,
which automatically recreates any indexes required. If you have large indexes,
this can extend the duration if this task. As usual, back up your database
before upgrading, and test upgrades on non-production systems first.
Our tests indicate that indexes with thousands of records and screen pages
worth of content (15MB index size) are converted in a few seconds.
this can extend the duration of this task. As usual, back up your database
before upgrading, and test upgrades on non-production systems first. Our tests
indicate that indexes with thousands of records and screen pages worth of
content (15MB index size) are converted in a few seconds.

In order to opt out of this change, you can set the engine explicitly
for your DataObject implementations:
In order to opt out of this change, you can set the engine explicitly for your
DataObject implementations:

```php
use SilverStripe\ORM\Connect\MySQLSchemaManager;
Expand Down Expand Up @@ -81,9 +79,12 @@ We intend to improve this pattern in a future release of Silverstripe CMS.

## MIME Type validation now a core module {#mime-validator}

`silverstripe/mimevalidator` is now a core module and will ship by default on new projects. Projects referencing `silverstripe/recipe-core` will automatically install `silverstripe/mimevalidator` when they upgrade to 4.6.0.
`silverstripe/mimevalidator` is now a core module and will ship by default on
new projects. Projects referencing `silverstripe/recipe-core` will automatically
install `silverstripe/mimevalidator` when they upgrade to 4.6.0.

Read [Allowed file types](Developer_Guides/Files/Allowed_file_types) in the Silverstripe CMS doc for all the details.
Read [Allowed file types](Developer_Guides/Files/Allowed_file_types) in the
Silverstripe CMS doc for all the details.

<!--- Changes below this line will be automatically regenerated -->

Expand Down

0 comments on commit 2931ce2

Please sign in to comment.