why:
- For the LIME project, we decided to rework the current data model for
storing LTI related data. The current system is quite old and has
accumulated a lot of tech debt from little patches over the years, so
we hope to refine and simplify the data model as much as is reasonably
possible.
- This is the first step/table in that process.
closes INTEROP-8499
flag=none
test-plan:
- Setup sharding and ensure you have the relevant sharding update commit
checked out (see the ticket description)
- Pull the commit and run your database migrations.
- A new "lti_registrations" table should have been created with the
appropriate columns as listed in the ticket.
- Rollback the migration that's part of this commit and ensure that it
completes successfully.
- Ensure that you have a user on a different shard.
- Run the migration again and ensure that you can create an
Lti::Registration with something like:
```
user = Shard.second.activate { User.first }
Lti::Registration.create!(account: Account.default, name: "registration",
created_by: user, updated_by: user)
```
Note that those are all of the required fields
Optional, as these are tested by the specs themselves:
- Ensure that the Lti::Registration requires an account and a
created_by/updated_by to be created/saved.
- Ensure that the Lti::IMS::Registration can be associated with the
Lti::Registration model.
- Ensure that the DeveloperKey can be associated with the
Lti::Registration model.
Change-Id: If7e8198956875a25fc8e545e3692e39e928222fe
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/345088
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Xander Moffatt <xmoffatt@instructure.com>
QA-Review: Xander Moffatt <xmoffatt@instructure.com>
Migration-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
Product-Review: Ryan Hawkins <ryan.hawkins@instructure.com>